creatureScan (http://www.creatureScan.creax.de/index.php)
- User (http://www.creatureScan.creax.de/board.php?boardid=4)
-- Ideen/Diskussionen (http://www.creatureScan.creax.de/board.php?boardid=6)
--- Phalanx-Scans und Serverzeit (http://www.creatureScan.creax.de/threadid.php?threadid=91)


Geschrieben von Timberwolf am 07.02.2009 um 22:10:

Phalanx-Scans und Serverzeit

Hallo,

erstmal grosses Lob zur neuen Version. Gefällt mir sehr gut.

Ich hätte da ne Frage, Bitte, Anregung, Idee:

Nachdem ich einen Phalanx-Bericht eingelesen habe und so ins Fenster schaue denke ich auf einmal: "Hoppla, nun wirds Zeit für die Recs!" und schicke sie los. Leider wird die Zeit der Phalanx mit eingelesen, im Fenster bei CS allerdings die Echtzeit des PC angezeigt. Da bei mir in Uni70 z.B. diese Zeiten recht abweichend sind, waren meine Recs nun paar Sek zu früh...

Kann man in CS irgendwie einbauen, daß die Serverzeit des Unis im Programm synchronisiert wird oder wenigstens nen fetten Warnhinweis ( Achtung! Bitte nach Serverzeit richten! ) ?


Geschrieben von creature am 08.02.2009 um 18:22:

hi

ja, so eine warnung wäre wohl nicht schlecht gewesen, ich schreibs gleich mal zu den downloadinfos dazu!

das die zeit automatisch synchronisiert wird will ich noch einbauen, allerdings fehlen mir da grad die ideen wie ich das umsetzte...


Geschrieben von sador am 09.02.2009 um 20:27:

Kleiner Tipp zum thema serverzeit:

Wie wäre es wenn du eine globale zeitenvariable einführst.

Die Serverzeit bekommt man ganz einfach.
(Ich habs hier mal mit telnet gemacht)
man verbindet sich zum jeweiligen server und fordert folgende seite an:

GET /game/index.php HTTP/1.1
Host: unixx.ogame.de

Der Server antwortet daraufhin mit:

Zitat:

HTTP/1.1 200 OK
Content-Length: 856
Date: Mon, 09 Feb 2009 18:21:26 GMT
Server: Apache Set-Cookie: PHPSESSID=d3e8ec597dee0a9364dbd9fc9a602f64; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Connection: keep-alive


Die Date variable enthält die aktuelle serverzeit in GMT(also muss man noch +1h rechnen)

So, die zeit fix in (am besten unixzeit) umrechnen, und in die dafür vorgesehene variable setzen.

dann musst du nur noch ein event(kp wie das in pascal geht) oder einen thread starten, der diese variable jede sekunde um 1 erhöht. dann hast du programmintern die Serverzeit.


Geschrieben von creature am 10.02.2009 um 01:27:

ahaaa... der HTTP header, muss man auch erstmal wissen dass da die Zeit drin steht ^^

thx sador, top sache, so lern ich immer wieder was dazu

jop, das ding in unixzeit umrechnen is klar.

aber ich glaube ich rechne einfach mit nem time-delta, dazu brauch ich mir keinen eigenen Timer bauen... der womöglich dann je nach rechnerauslastung auchnoch falsch geht ^^

lustig wirds auchnoch die ganzen aufrufe von now(); zu ersetzen ^^


kurze frage noch wegs legalität!? ob die von ogame da auch nix dagegen haben?


Geschrieben von sador am 10.02.2009 um 01:37:

hmm, die sollten eig nichts dagegen haben. Also mal ganz im ernst, google zb versucht ja auch regelmässig die OGame Server durchzugrabben um ihre suchmaschine zu aktualisieren. von daher sehe ich da kein prob, mal abgesehen davon, falls du ein problem darin siehst, dann lass deinen GET request einfach die /robots.txt abfragen. Das ist das was jede suchmaschine zuerst tun würde.
Zitat:

HTTP/1.1 200 OK
Date: Mon, 09 Feb 2009 23:31:52 GMT
Server: Apache
Last-Modified: Thu, 08 Jan 2009 15:55:45 GMT
ETag: "47e17-37-45ffaac5bc240"
Accept-Ranges: bytes
Content-Length: 55
Vary: Accept-Encoding
Content-Type: text/plain; charset=utf-8
Expires: Tue, 10 Feb 2009 23:31:52 GMT
Connection: keep-alive

# Permit indexing of all pages

User-agent: *
Disallow:


musst dann halt drauf achten nicht die Last-Modified Zeit zu nehmen xD

EDIT 1:
Der simpelste weg wäre es natürlich, die Windows Systemzeit nach abfrage des OGame Servers anzupassen und beim beenden von Cs die Zeit vom voreingestellten NTP server(in den zeiteinstellungen bei windoof) abzufragen. das lässt sich afaik über die WinAPI triggern(muss dazu ma meine docs durchwühlen)
Das würde dir viele codeänderungen ersparen, sollte dann aber eine option sein, die man abschalten kann. Ich mache es derzeit als workaround so, dass ich auf die Funkzeit Sch**sse, Ogamezeit ist das einzige was zählt. Bei u70 sind das derzeit immerhin 3m47 differenz


Geschrieben von creature am 06.04.2009 um 17:39:

Zitat:
Original von sador
Bei u70 sind das derzeit immerhin 3m47 differenz


ist das immernoch so ?

ich hab mir jetzt mal sowas zusammengabastelt.... aber mir scheint das die meisten unis, auch uni 70, ziemlich genau laufen...


Geschrieben von sador am 06.04.2009 um 21:15:

ne die haben die zeit kürzlich synchronisiert. U70 hat derzeit ne differenz von knapp 10 sec zur Funkzeit. Differenz U55 U70 liegt bei 4 sekunden. Also müssen wir noch warten bis die zeit sich wieder verstellt hat :-D


Geschrieben von creature am 06.04.2009 um 22:36:

hi, also ich hab gerade mal meine funkuhr danneben gehalten und so wie ich das sehe sind das 1 bis 2 sekunden die uni70 falsch geht...

jedenfalls stell ich mal mein tool online, ist erstmal nen extra proggy...

Zitat:
dieses kleine tool synchronisiert auf knopfdruck deine lokale Rechnerzeit mit dem Server des gewünschten ogame-universums.
Achtung: unter Vista muss das Programm mit Adminrechten gestartet werden, sodass es die lokale Zeit verstellen kann.


http://www.download.creax.de/file.php?id=16


Geschrieben von 5vor12 am 03.05.2009 um 16:59:

Zitat:
Original von sador

EDIT 1:
Der simpelste weg wäre es natürlich, die Windows Systemzeit nach abfrage des OGame Servers anzupassen und beim beenden von Cs die Zeit vom voreingestellten NTP server(in den zeiteinstellungen bei windoof) abzufragen. das lässt sich afaik über die WinAPI triggern(muss dazu ma meine docs durchwühlen)
Das würde dir viele codeänderungen ersparen, sollte dann aber eine option sein, die man abschalten kann. Ich mache es derzeit als workaround so, dass ich auf die Funkzeit Sch**sse, Ogamezeit ist das einzige was zählt. Bei u70 sind das derzeit immerhin 3m47 differenz


Die lokale Zeit zu ändern ist keine Gute Idee, denn normalerweise hat der Benutzer nicht die Berechtigung die Urzeit zu ändern unter Windows. Auch ein NTP-Server muss nicht zwingend eingestellt sein - und wer möchte schon seine lokale Zeit an die Ogame-Zeit angepaßt haben die wohlgemerkt von sekundengenau bis mehrere Minuten daneben liegen kann.

Powered by: Burning Board Lite 1.0.2 © 2001-2004 WoltLab GmbH