Zeitmanager Spiele

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Zeitmanager Spiele

BeitragFr, Feb 24, 2017 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, leute wenn ich nun eine art spiel mach was auf zeit basiert, geh ich von der realen zeit aus die vergangen ist.
nun da jeder sein pc neustartet oder auch über nacht aus schaltet würde ich gern wissen wie kann ich die vergangene zeit erlesen?

mein plan war currenttime und currentdate zu verwenden um auszulesen wieviel zeit vergangen ist, kann man es so machen oder gibt es da klevere lösungen?

danke für idden^^
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Hubsi

BeitragSa, Feb 25, 2017 1:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze die Unixzeit. So ist es schwer zu manipulieren. Dein Spiel setzt damit aber auch eine Internetverbindung voraus. Ist wahrscheinlich schwer einen Spieler ohne zu finden, der Vollständigkeit halber seis aber erwähnt Smile
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Mathias-Kwiatkowski

BeitragSa, Feb 25, 2017 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
wie genau geht es mit der unix zeit? gibts dazu bsp? oder kannst du beschreiben wie du es meinst?
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Hubsi

BeitragSa, Feb 25, 2017 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Du holst Dir beim Spielstart von einem php-Script
Code: [AUSKLAPPEN]
<?php
echo time();

// So oder so ähnlich
?>

(Bmax-Code hab ich dazu keinen, hab selbst noch kein Max-Proggi mit dem Internet verbunden) den aktuellen Timestamp ( https://de.wikipedia.org/wiki/Unixzeit ) und weißt damit wieviel Sekunden seit dem letzten Abgleich vergangen sind. Zum Ende des Spiels wird dann die vergangene Zeit aufaddiert und gespeichert und beim nächsten Start... siehe oben Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Xeres

Moderator

BeitragSa, Feb 25, 2017 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ob man die aktuelle Zeit vom Betriebssystem selbst holt und CurrentTime und CurrentDate in vergangene Sekunden umrechnen muss oder über das Netzwerk bezieht, ist sicher ziemlich egal... "Unixtime" ist nicht magischerweise genauer oder besser.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Hubsi

BeitragSa, Feb 25, 2017 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Gedanke ging da in Richtung cheaten, bzw. im blödesten Falle nichtmal bewusst cheaten sondern eine schlicht nicht korrekte Einstellung von Datum und/oder Zeit am Computer. Wenn da von der vergangen Zeit wegen meiner eine Entwicklung einer Einheit oder Stadt oder whatever abhängt kann ich dem Spiel vorgaukeln es seien schon 2 Wochen vergangen und hab schwuppdiwupp einen mega-überbewaffneten-unbesiegbaren Soldaten oder im umgekehrten Fall nach wirklich 2 Wochen einen totalen Luschen-Panzer. Beides nicht fair Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

DAK

BeitragSo, Feb 26, 2017 11:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Möglichkeit für Netzwerkzeit, für die du keinen eigenen Server brauchst, ist die Uhrzeit von einem der vielen Atomuhr-Webseiten abzufragen, wie z.B. https://time.is/s/. Der erste Zahlenwert ist die aktuelle Uhrzeit in Millisekunden.

Da hast du die Vorteile, dass es sehr genau ist, sich vom Nutzer nicht manipulieren lässt und auch einer fehlerhafte Real Time Clock am Computer fällt hier nicht ins Gewicht.
Gewinner der 6. und der 68. BlitzCodeCompo

count-doku

BeitragSo, Feb 26, 2017 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Idee mit der Unixzeit ist gut, wobei ich bezüglich der Manipulierbarkeit anmerken möchte,
dass selbst wenn du die aktuelle Uhrzeit aus einer vergleichsweise zuverlässigen Quelle holst,
aber die Zeit, wann das Spiel zuletzt lief auf dem Rechner abspeicherst natürlich auch die Speicherdatei manipuliert werden kann.


Nur so als Anregung - man könnte auch mit Wireshark mitschneiden von wo die Uhrzeit abgerufen wird und dann über eine entsprechende Umleitung in der Hosts Datei seine eigene Uhrzeit vorschalten Wink

Also wirklich safe wirds nie werden Very Happy



lg,
count-doku

Hubsi

BeitragSo, Feb 26, 2017 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Ersten Abschnitt rausgenommen, das war Blödsinn Very Happy

Da könnte man vielleicht noch die Zeitgeschichten direkt im Netz speichern in einer Datenbank mit einer eindeutigen Kennung. Man müsste sich quasi registrieren um das Spiel ernsthaft spielen zu können.
Da gilt es wohl sich schon zu Beginn des Projekts zu entscheiden wie wichtig einem die Cheatsicherheit ist Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Xeres

Moderator

BeitragSo, Feb 26, 2017 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte macht nicht die gleichen Fehler wie größere Publisher und baut always-online single player Spiele... In euren Spielen wird nicht gecheatet. Dazu müssen sie erst mal existieren - und das werden sie nicht, wenn ihr noch nutzloses Netzwerkzeug obendrauf programmieren müsst. Wenn ihr euren eigenen Server unterhaltet: Wie viele Monate kann man das Spiel dann noch ausprobieren, bis gar nichts mehr geht?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Mathias-Kwiatkowski

BeitragSo, Feb 26, 2017 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
also das meine problem wird das selbe sein, es soll offline spielbar sein. definitief. cheat is auch möglich wenn man das php script ansteuert das angekommene umzuwandeln, ...

mein eigentliches problem besteht darin es richtig umzusetzen um zu sehen wieviel zeit vergangen ist, bleibt es bsp. der selbe tag is es ja einfach

neue zeit - alte zeit

aber wie macht man es mit den tagen genau?

z.b. 1.Jan.2017 20:04 würd bei mir umgewandelt werden in 2017112004
nun der nächste tag 2.jan.2017 13:00 1220171300
dann das 2 minus das erste. aber so gehts auch nich, oder? ich bin mir da ehr unsicher, wie ich es machen soll, sprich den genauen weg zu gehen. wieviel sek vergangen sind...
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Xeres

Moderator

BeitragSo, Feb 26, 2017 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Alle Zahlenwerte von verschiedenen Zeiteinheiten hintereinander zu konkatenieren wird dir ziemlich sicher nichts bringen. Schreibe dir ein DateTimeType, der Jahr, Monat, Tag usw. enthält und eine differenz-Methode, die ein zweites Objekt diesen Typs akzeptiert. Dann kannst du die Eigenschaften einzeln subtrahieren und ggf. in die vergangenen Sekunden umrechen, oder was du halt brauchst.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BladeRunner

Moderator

BeitragSo, Feb 26, 2017 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Brucey hat da was gemacht:
*klick*
Wie immer gewohnt gute Qualität. Berechnung von Zeitdifferenzen etc.
Da sollte alles drin sein was Du brauchst.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FireballFlame

BeitragMo, Feb 27, 2017 1:12
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Brucey hat da was gemacht:
*klick*

Während es dort kurze Beschreibungen zu den Modulen gibt, ist die Seite schon lange nicht mehr aktuell.
Ich empfehle, DateTime (und andere BaH-Module) von hier herunterzuladen, dort bekommt man die jeweils neuesten Versionen.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

BladeRunner

Moderator

BeitragMo, Feb 27, 2017 1:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Seite verweist ja auf das Github Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FireballFlame

BeitragMo, Feb 27, 2017 2:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber nur indirekt über die GoogleCode-Links. Bei DateTime z.B. steht da aber ein Direktlink zu einer uralten Version, da wäre das leicht zu übersehen. Viele neuere Module sind auf der Seite auch gar nicht gelistet.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Mathias-Kwiatkowski

BeitragDi, Feb 28, 2017 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh die frage bleibt eigentlich die selbe, da das modul, nich ausführbar ist.

Build Modules:
Code: [AUSKLAPPEN]

C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:28:51: boost/date_time/gregorian/gregorian.hpp: No such file or directory
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:29:53: boost/date_time/posix_time/posix_time.hpp: No such file or directory
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:30:53: boost/date_time/local_time/local_time.hpp: No such file or directory
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:32:28: boost/locale.hpp: No such file or directory
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:38: error: `boost' has not been declared
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:38: error: `posix_time' is not a namespace-name
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:38: error: expected namespace-name before ';' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:39: error: `boost' has not been declared
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:39: error: `gregorian' is not a namespace-name
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:39: error: expected namespace-name before ';' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:40: error: `boost' has not been declared
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:40: error: `local_time' is not a namespace-name
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:40: error: expected namespace-name before ';' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:44: error: expected constructor, destructor, or type conversion before '*' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:45: error: expected constructor, destructor, or type conversion before '*' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:47: error: expected constructor, destructor, or type conversion before '*' token
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:48: error: variable or field `bmx_datetime_delete' declared void
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:48: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:48: error: `d' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:50: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:50: error: `myDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:50: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:50: error: `yourDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:50: error: initializer expression list treated as compound expression
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:51: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:51: error: `myDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:51: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:51: error: `yourDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:51: error: initializer expression list treated as compound expression
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:52: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:52: error: `myDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:52: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:52: error: `yourDate' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:52: error: initializer expression list treated as compound expression
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:54: error: `date' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:54: error: `d' was not declared in this scope
C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp:55: error: `date' was not declared in this scope

Build Error: failed to compile C:/BlitzMax/mod/bah.mod/datetime.mod/glue.cpp



die glue.cpp ist allerdings vorhanden in C:\BlitzMax\mod\bah.mod\datetime.mod
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

BladeRunner

Moderator

BeitragDi, Feb 28, 2017 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das datetime-Modul setzt Bruceys Boost-Module (und die passende Lib) voraus. Wird eigentlich auf Github auch erklärt bzw. ist in den Docs zu lesen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group