Die Include-Daten müssen im gleichem Verzeichnis liegen.
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