Alles anzeigenAbend Jungs,
Codenew seconds = pInfo[playerid][pAutoRestzeit] - gettime(); new days = seconds / 86400; seconds -= days * 86400; new hours = seconds / 3600; seconds -= hours * 3600; new minutes = seconds / 60; seconds -= minutes * 60; new year, month, day, hour, minute, second; TimestampToDate(pInfo[playerid][pAutoDatum], year, month, day, hour, minute, second, 2); if(pInfo[playerid][pAutosperre]) format(string, sizeof(string), "%s\n{bc4343} | %02d.%02d.%d | •Autoschein Sperre (%d:%d:%d)", string, day, month, year, hours, minutes, seconds);
Welchen Wert muss ich denn jetzt speichern und bzw. welcher Wert ist die Restzeit. Wie wird sie gespeichert und als was?
Nicht vergessen ist TimestampToDate. Meine ich hatte das schon aber habe gemerkt das es nirgends gespeichert wird.
Muss ich dazu noch einen Timer erstellen der prüft ob die Zeit abgelaufen ist sagen wir so alle 2 Minuten? Wenn ja wie sieht der
Code aus einfach ob die Restzeit <0 ist?
Muss es eine Float sein? Wenn ja wie viele nach Komma Stellen?
TimestampToDate() wandelt einen UNIX-Timestamp in ein Datum um. Der UNIX-Timestamp für gerade JETZT lautet 1539246883 und würde per TimestampToDate() dir folgendes zurückgeben:
year = 2018, month = 10, day = 11, hour = 10, minute = 35. Speichern würde ich generell immer den UNIX-Timestamp den du in der Variable pAutoRestzeit speicherst. Damit kannst du dir nämlich immer berechnen, wie lange es noch bis zur Zeit pAutoRestzeit dauert, als auch welche Zeit es genau ist.
Der UNIX-Timestamp ist eine ganze Zahl (int), demnach musst du keinerlei Komma-Stellen beachten. Zur Überprüfung kannst du einfach schauen, ob gettime() > als pAutoRestzeit ist - falls ja, ist die Zeit abgelaufen.