AHK - Skript für Township (FB)

Browser : Mozilla Firefox

Bildschirmauflösung : 1920 x 1080

Die Include-Daten müssen im gleichem Verzeichnis liegen.

  • Mengen.mjr
  • soundbeginn.mjr
  • DieMitspieler.mjr
  • Tastenkuerzel(Hotkey).mjr
  • soundbeenden.mjr
  • NeuLaden.mjr
  • sdenden.mjr

Auf Anfrage giebt es die Sounddaten und die nachfolgenden Skript Teile:

#Include Zehlediezahlen.mjr        ;RundenazhlAnsage
#Include Zielrundenansage.mjr        ;Zielrunden Ansage
#Include Materialansagen.mjr        ;Auswahl der Ansage für Material und Ansage (Abspielen Materialname)

 

Für die Soundausgabe müssen die Sounddaten erstellt werden, ansonsten im Skript deaktivieren.


#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
;---------------------------------------------------------------------
;Schliesst alte Instanzen und Startet das Skripr Neu
#SingleInstance, Force

 

;Die Include Daten müssen im gleichem Verzeichnis liegen
#Include Mengen.mjr            ;Einstellungen für Spiele, Ansagen und Post (Aktivieren oder Deaktivieren)

;Variable schaltet nach einmaligem Gebrauch auf 0 um wiederholungen
;der Ansage "Runden" Auszuschalten.
;Datei: Zielrundenansage.mjr
;Zeile 148- bis 153
rundenmp3:=0
;----------------------------------------------------------------------
Run, %Mediaspieler%, %MediArbeitsv%, Min  ;Startet den Eingestellten Mediaplayer / Arbeitsverzeichnis
;---------------------------------------------------------------------
;Setzt Auf Vergleichende Inhalte beim Fenstersuchen
SetTitleMatchMode,2
;---------------------------------------------------------------------
;Aktiviert Ein Fenster mit dem Inhalt des Textes "Township auf Facebook"
WinActivate, Township auf Facebook
;--------------------------------------------------------------------
;Wechselt auf Koordinatensystem PIXEL zur Bildersuche
CoordMode Pixel
;---------------------------------------------------------------------
;Positionen der Materialien
;Gosub, MaterialButton
If (SpieleSprache=1){
SoundPlay, offnegeschenkeseite.mp3,1
}else{
;Spielt Startsound Ab
#Include soundbeginn.mjr
}
MsgBox, Bitte oeffne TOWNSCHIP und gehe auf GESENKE `n `n Maustaste Loslassen `n `n mit Eingabetaste bestätigen.
;;;;;Sleep, 2000


If (Nachrichten=1){
Gosub, PostPruefen
}


; Zufallsgenerator für Rundenanzahl siehe Einstellungen ->(Mengen.mjr)
;Prüfung der eingaben Rund1 & Rund2 - Abbruchfehler wegen falscheingaben

; Prüft ob die Variable eine Zahl ohne dezimalpunkt ist
If (Rund1 not integer){
Rund1:=1
MsgBox, Die Eingabe in der Datei Mengen.mjr ist FALSCH `n`n Die Maximale rundenzahl wurde neu eingestellt eingestellt `n Bitte die Datei (Mengen.mjr) Prüfen.
}
If (Rund2 not integer){
Rund2:=99
MsgBox, Die Eingabe in der Datei Mengen.mjr ist FALSCH `n`n Die Maximale rundenzahl wurde neu eingestellt `n Bitte die Datei (Mengen.mjr) Prüfen.
}

Random, AusgabeVar , %Rund1%,%Rund2%
RettungVar1:=AusgabeVar            ;Random Zahl sichern für weitere Bearbeitung zur Rundenansage (Splitten der Zahlen)
Gosub, Zielrundenansage            ;siehe -> (Zielrundenansage.mjr)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MsgBox, %RettungVar1%


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MsgBox,  Es werden %AusgabeVar% durchläufe gespiel `n`n Holz - %AusgabeVar%*%Wood% `n`nZiegel - %AusgabeVar%*%Brick% `n`nTräger - %AusgabeVar%*%Carrier% `n`nPlatten - %AusgabeVar%*%Plates% `n`nGlas - %AusgabeVar%*%Glass% `n`nIngeneure - %AusgabeVar%*%Engineer% `n`n`nWerte können in  EinstellungenMengen.mjr geändert werden.

Sleep, 1777

Mitzahl:=0        ;Zählt Die Runden die bisher abgearbeitet wurden

Loop , %AusgabeVar% {

If (Mitzaehlen=1){
Gosub,  RundenZahlAnsage
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MsgBox, %Mitzahl% von  %AusgabeVar% %A_Index%
}
Mitzahl++        ;Rundenanzahl Hochzählen

;Zufall für Reihenfolde der Materialien
Random, ReiheVar ,1,6

Send, {PgUp 3}

If(ReiheVar=1){
Gosub, Sende1    ;Material Holz
Gosub, Sende2    ;Material Stein
Gosub, Sende3    ;Material Träger
Gosub, Sende4    ;Material Platten
Gosub, Sende5    ;Material Glas
Gosub, Sende6    ;Material Ingeneur
}
If(ReiheVar=2){
Gosub, Sende3    ;Material Träger
Gosub, Sende2    ;Material Stein
Gosub, Sende1    ;Material Holz
Gosub, Sende4    ;Material Platten
Gosub, Sende6    ;Material Ingeneur
Gosub, Sende5    ;Material Glas
}

If(ReiheVar=3){
Gosub, Sende6    ;Material Ingeneur
Gosub, Sende5    ;Material Glas
Gosub, Sende4    ;Material Platten
Gosub, Sende3    ;Material Träger
Gosub, Sende2    ;Material Stein
Gosub, Sende1    ;Material Holz
}

If(ReiheVar=4){
Gosub, Sende3    ;Material Träger
Gosub, Sende4    ;Material Platten
Gosub, Sende6    ;Material Ingeneur
Gosub, Sende5    ;Material Glas
Gosub, Sende2    ;Material Stein
Gosub, Sende1    ;Material Holz
}

If(ReiheVar=5){
Gosub, Sende2    ;Material Stein
Gosub, Sende1    ;Material Holz
Gosub, Sende4    ;Material Platten
Gosub, Sende3    ;Material Träger
Gosub, Sende6    ;Material Ingeneur
Gosub, Sende5    ;Material Glas
}

If(ReiheVar=6){
Gosub, Sende2    ;Material Stein
Gosub, Sende6    ;Material Ingeneur
Gosub, Sende5    ;Material Glas
Gosub, Sende3    ;Material Träger
Gosub, Sende1    ;Material Holz
Gosub, Sende4    ;Material Platten
}
Sleep,333

Gosub, SeiteNeuLaden            ;Atuelle Seite Neu Laden und auf Geschenke Wechseln
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}        ;Ende der Äusseren schleife (Anzahl der Runden)

Goto, Ausgang            ;Beendet den Ablauf wenn maximale Rundenzahl erreicht wurde

;Zufällige Reihenfolge beim Senden der Materialien - Siehe Schleife Rundenzahl
Sende1:
Loop ,%Wood%{
MeinTon:=1
Gosub, Holz    ;Position XY
Gosub,GeschenkeSenden
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

Sende2:
Loop ,%Brick%{
MeinTon:=2
Gosub, Ziegel    ;Position XY
Gosub,GeschenkeSenden
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

Sende3:
Loop ,%Carrier%{
MeinTon:=3
Gosub, Traeger    ;Position XY
Gosub,GeschenkeSenden
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

Sende4:
Loop ,%Plates%{
MeinTon:=4
Gosub, Platten    ;Position XY
Gosub,GeschenkeSenden
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

Sende5:
Loop ,%Glass%{
MeinTon:=5
Gosub, Glas    ;Position XY
Gosub,GeschenkeSenden
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

Sende6:
Loop ,%Engineer%{
MeinTon:=6
Gosub, Ingeneur    ;Position XY
Gosub,GeschenkeSenden        ; Absenden der Materialien
Gosub,SchaueGeschenke        ; Prüft Blind auf Geschenkeeingang - und nimmt Blind an
}
Return

; Hauptroutine
GeschenkeSenden:
Gosub, Bewegen    ;Maus Bewegen und Klicken
Gosub, KleinePause
Gosub, TextfeldXY    ;Position Textfeld
Gosub, Bewegen    ;Maus Bewegen und Klicken
Gosub, Tasteneingaben        ;Steuersequenzen Senden - Textfeld Löschen


; == Mitspieler Variablen und Sprungmarken ==
;Mitspieler Festlegen in Datei - DieMitspieler.mjr
; Zur Funktion Muss Der neue Mitspieler in den
; für Mehr Spieler müssen hier Die Variablen Kürzel erweitert werden

if (MS01=1){
Gosub, Spieler1    ;Name des Spielers 1
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}
If (MS03=1){
Gosub, Spieler2    ;Name des Spielers 2
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}
if (MS02=1){
Gosub, Spieler3    ;Name des Spielers 3
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}
if (MS04=1){
Gosub, Spieler4    ;Name des Spielers 4
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}
if (MS05=1){
Gosub, Spieler5    ;Name des Spielers 5
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}

if (MS06=1){
Gosub, Spieler6    ;Name des Spielers 6
Gosub, MDurchlauf     ;Allgemeiner Durchlauf
}



Gosub, GeschenkVersand    ;Position des Versenden buttons
Gosub, Bewegen        ;Maus Bewegen und Klicken Löst den Button Versenden aus

Gosub, WelcheDatei        ;Auswahl der MP3-Datei
Gosub, TonAbspielen        ;Startet den SoundPlay Befehl
;SoundBeep
Gosub, KleinePause

Return
;-------------------------

 

;Die Include Daten müssen im gleichem Verzeichnis liegen
#Include Zehlediezahlen.mjr        ;RundenazhlAnsage
#Include Zielrundenansage.mjr        ;Zielrunden Ansage
#Include Materialansagen.mjr        ;Auswahl der Ansage für Material und Ansage (Abspielen Materialname)


;Allgemeiner Durchlauf
MDurchlauf:
Gosub, TextfeldXY    ;Position Textfeld
Gosub, Bewegen    ;Maus Bewegen und Klicken
Gosub, Tasteneingaben        ;Steuersequenzen Senden - Textfeld Löschen
Gosub, NameSchreiben     ;Schreibt den Namen in das Textfeld
Gosub, KleinePause
Gosub, NameKlick        ;Klickt den Obersten Namen in dem Listenfeld
Gosub, Bewegen    ;Maus Bewegen und Klicken
Return



;Klickt den Obersten Namen in dem Listenfeld
NameKlick:
PosX:=835
PosY:=635
Return


KleinePause:
Random, AusgabeVar , 440,888
Sleep, AusgabeVar

Return


GeschenkVersand:
PosX:= 940
PosY:=897
Return

;Schreibt den Spielernamen aus der Variablen in das Textfeld
NameSchreiben:
Send, %Spielername%
Return

 

;Die Include Daten müssen im gleichem Verzeichnis liegen
#Include DieMitspieler.mjr
;Steuersequenzen Senden - Textfeld Löschen
Tasteneingaben:
Send {Shift down}
Send {End}
Send {Shift up}
Send {Del}
Return

;Maus Bewegen und Klicken
Bewegen:
MouseMove, PosX,PosY
Gosub, KleinePause
Click
Return



PostPruefen:
;MsgBox, Posteingang wird geprüft

MouseMove, 1571,354
Sleep, 1500
Click
Sleep, 1500

;Parameter zur Pruefung des Posteingangs
PP:=1
Loop {
Gosub, AnnehmenPost

    if (PP=0)
        break
}
Return



AnnehmenPost:
;Suche Geschenke
ImageSearch, XPos,YPos, 919, 457, 1125 , 546,annehmen.PNG
if (XPos < 1){

Gosub, Annehmen2Post

;     MsgBox Symbol konnte nicht auf dem Bildschirm gefunden werden. Posteingang wird geschlossen
    MouseMove, 1156,395
     Click
SoundBeep
Sleep, 200
SoundBeep
Sleep, 200
SoundBeep
PP:=0
}else{
;MsgBox Das Symbol wurde bei %XPos%x%YPos% gefunden.
SoundBeep
Sleep, 500
SoundBeep
MouseMove, Xpos,Ypos
Click
PP:=1
}
Return


SchaueGeschenke:

; Maus zum Brief schieben
Sleep,789
PosXG:=1569
PosYG:=345
MouseMove, PosXG, PosYG
Sleep,678
Click

;Maus zum Annehmen Button schieben

Loop,5 {
Sleep,567
PosXG:=1045
PosYG:=500
MouseMove, PosXG, PosYG
Sleep,300
Click
}

;Fenster wieder schliessen
Sleep,555
PosXG:=1156
PosYG:=398
MouseMove, PosXG, PosYG
Sleep,321
Click
Return

Annehmen2Post:
;Suche Geschenke
ImageSearch, XPos,YPos, 919, 457, 1125 , 546,annehmen2.PNG
if (XPos < 1){
;     MsgBox Symbol konnte nicht auf dem Bildschirm gefunden werden. Posteingang wird geschlossen
SoundBeep
Sleep, 200
SoundBeep
Sleep, 200
SoundBeep
PP:=0
}else{
;MsgBox Das Symbol wurde bei %XPos%x%YPos% gefunden.
SoundBeep
Sleep, 500
SoundBeep
MouseMove, Xpos,Ypos
Click
PP:=1
}
Return

;Position vom Textfeld
TextfeldXY:
PosX:=775 ;Fenster nicht Maximiert
PosY:=767 ;Fenster nicht Maximiert
PosX:=785 ;Fenster Maximiert
PosY:=773 ;Fenster Maximiert
Return

;Positionen der Materialien
Holz:
PosX:=563
PosY:=705
Return

Ziegel:
PosX:=728
PosY:=701
Return

Traeger:
PosX:=892
PosY:=704
Return

Platten:
PosX:=1043
PosY:=700
Return

Glas:
PosX:=559
PosY:=900
Return

Ingeneur:
PosX:=893
PosY:=898
Return

 

;Die Include Daten müssen im gleichem Verzeichnis liegen
#Include Tastenkuerzel(Hotkey).mjr
#Include soundbeenden.mjr
#Include NeuLaden.mjr
Ausgang:
if (SpieleSprache=1){
SoundPlay, dateiwirdbeendet.mp3,1
}else{
#Include sdenden.mjr
}
ExitApp