Soweit so gut, doch kleine Fehler im Programm..

05/02/2010 19:15 Fiiine#1
Hallo Leute,
heute nacht habe ich meinen Bot mit eurer Hilfe fertiggestellt und ihn heute mittag noch ein wenig verbessert. Es klappt alles wunderbar, doch es gibt einige kleine Fehler, auf die ich gleich zurückkommen werde.

Zuerst lasse ich euch meinen Quellcode einsehen:

.

Nun möchte ich das Problem etwas näher erläutern:
Und zwar ist das ganze für das Spiel WarRock, dass eine Taste für eine bestimmte Dauer simulieren und später in der Lobby die Rundenanzahl auf 9 stellt.

Ich habe einen etwa 4 Jahre alten Rechner und nebendran einen neueren Laptop. Wenn ich auf beiden dieselbe Einstellungen vornehme bezüglich der Wartezeit etc, dann läuft es die ersten paar male perfekt.
Doch mit steigender Anzahl der Durchläufe, gerät der Laptop in Vorsprung, was ja nicht gewollt war. Und je höher die Zeitdifferenz wird, umso mehr gerät das ganze Vorhaben ins Wankeln, bis irgendwann garnichts mehr geht.

Daher lauten meine Fragen:
1. Wie kann ich beide (Laptop und PC) synchroniseren in Autoit?
2. Ab und zu erhalte ich einen Buffer Overrun..wie kann ich sowas vermeiden?

Ich bedanke mich schon im vorab für jede Hilfe :)

Viele Grüße,

Fiiine
05/02/2010 19:17 HardCore.1337#2
Buffer Overrun? Wenn ich falsch liege bitte berichtigen. Ich denke mal das es da ein Problem mit der Speicherverwaltung gibt. Dies wirst du mittels AutoIt aber nich lösen können.
05/02/2010 23:06 Fiiine#3
Ich werde daher mal übermorgen paar Updates von Win Xp ziehen, vllt liegts ja daran..

Ähm ja, also nochmal meine Frage: Gibt es irgendeine Möglichkeit, dass die Handlungen von 2 PC's mittels AutoIT synchronisiert?
05/03/2010 17:15 | Moep |#4
Wozu zwei PCs?
Möglichkeiten gäbe es da sicher, aber dann müssten die zwei rechner Daten untereinander austauschen.
Oder du stellst die Systemuhr bei beiden auf die exakt gleiche zeit und nimmst die dann zum abgleich her.
05/04/2010 00:42 Fiiine#5
Also weil ich beide PC's zum Leveln brauche und beide zeitgleich später die F-Taste drücken müssen. Und wenn der eine Rechner das Skript um millisekunden schneller durchläuft (obwohl die Standartwerte bei beiden Rechnern gleich sind) dann macht das bei wenigen Durchläufen nichts aus..Doch sobald die Anzahl der Durchläufe steigt, dann gerät das ganze ins Ungleichgewicht, sprich der eine Rechner hört dann früher auf F zu drücken etc..
Und das ganze will ich vermeiden und beide exakt einstellen (+- 500 millsekunden, jedoch keine groben Zeitabstände bei mehreren Durchläufen).

Meine Idee war es, etwa alle 5 Durchläufe beide Skripte zu synchroniseren..entweder durch die Systemzeit, wie du mir vorgeschlagen hast oder auch vllt durch getpixelcolor (sprich der schnellere PC muss warten, bis der langsamere PC später etwas schreibt und erst dann weiterläuft)..

Ich hoffe, dass ihr versteht was ich meine ^^

Gibt es etwas für den Zeitabgleich an der Systemuhr? Irgendwelche Befehle?
05/04/2010 07:50 | Moep |#6
Quote:
Makro Referenz - Zeit und Datum
Es folgt eine Liste mit Zeit- und Datumsmakros. Es ist zu beachten, dass die meisten Rückgabewerte zwei Ziffern enthalten.

Die komplette Liste der Makros kann [Only registered and activated users can see links. Click Here To Register...] eingesehen werden.


Makro Beschreibung
@MSEC
Millisekundenwert der Uhrzeit. Wertebereich: 00 bis 999

@SEC
Sekundenwert der Uhrzeit. Wertebereich: 00 bis 59
@MIN
Minutenwert der Uhrzeit. Wertebereich: 00 bis 59
@HOUR
Stundenwert der Uhrzeit im 24-Stunden-Format. Wertebereich: 00 bis 23.
@MDAY
Aktueller Tag des Monats. Wertebereich: 01 bis 31
@MON
Aktueller Monat. Wertebereich: 01 bis 12
@YEAR
Aktuelles Jahr (4-stellig)
@WDAY
Numerischer Tag der Woche. Wertebereich: 1 bis 7 entsprechend Sonntag bis Samstag
@YDAY
Aktueller Tag des Jahres. Wertebereich: 1 bis 366 (oder 365, wenn es kein Schaltjahr ist)

Wieso lässt du nicht beide Spielinstanzen auf einen Rechner laufen?