Guten morgen breadfish,
ich möchte heute herausfinden, wie lange ein user von "Start" bis "Ziel" brauchte z.B.
Start 02:34:55 -------------------------------------- Ziel: 3:33:42
dabei ist der start nicht immer punkt 0.
Guten morgen breadfish,
ich möchte heute herausfinden, wie lange ein user von "Start" bis "Ziel" brauchte z.B.
Start 02:34:55 -------------------------------------- Ziel: 3:33:42
dabei ist der start nicht immer punkt 0.
Wenn er startet einen Timer jede Sekunde die Variable um 1 addieren lassen und beim Ziel den Timer stoppen
Benutze doch nen Timestamp:
new start = gettime(); // Startzeit speichern
new ziel = gettime(); // Zielzeit speichern
new zeitgebraucht = ziel-start; // Zeit in Sekunden zwischen dem Start und den Ziel
Die Sekunden kannst du dann in Minuten, Stunden, Tage, Wochen, Monate, Jahre etc. umrechnen.
Da würde ich dir eher zu GetTickCount raten. Da kannst du auch genauer als auf Sekunden-Ebene gehen ( Millisekunden ).
Das passiert aber dann bei 500 Leuten zu jeder zeit ich möchte das berechnen.
StartSek, StartMin, StartH und ZielSek, ZielMin, ZielH = ZwischenZeitSek, ZwischenZeitMin, ZwischenZeitH
und diese zwischenvariablen muss cih berechnen da eintimer in diesem sinne zu auslastent ist.#
Das subtrahieren ist einfach gesagt aber das ziel kann ich nicht mit gettime herausfinden, das ziel ist schon vorgegeben um das zu verstehen ich mach ein Zug timer.
Ich weis wann der Spieler auf den Bildschirm schaut und ich weis (gespeichert in 3 variablen) wie viel uhr der nächste zug kommt, nun möcht ich zeigen "Noch 3min" oder so.
//EDIT: Ich habe die Zeit des Spielers in 3 Variablen für stunde minute und sekunde und ich weis in 3 variablen wann der nächste zug fährt.
//EDIT: Ich habe die Zeit des Spielers in 3 Variablen für stunde minute und sekunde und ich weis in 3 variablen wann der nächste zug fährt.
Subtrahiere die 3 Spieler Variablen von den 3 Zug Variablen.
Wenn ich es Falsch verstanden habe Tut es mir Leid.
haha wenn es so einfach wäre dann hätte ich das so gemacht.
Beispiel: Start 01:22:43 Ziel: 02:10:20
02:10:20
-01:22:43
---------------
01:-12:-23
Wie du siehst muss ich bei -zahlen ein übertrag machen das ist das problem.
Wenn es unter 0 ist von Vorne eine Zahl wegnehmen und Hinten 60 addieren
Siehst du hier.
02:10:20
-01:22:43
---------------
01:-12:-23
00:47:37 Es kämme 47 Minuten und 37 Sekunden raus
ich teste das mal, das wollt ich iwssen denn in umgekehrter reinfolge hab cih das schon wo anderst
Kann dir aber nicht sagen ob es funktioniert so kenne ich es aus der Schule
new racestart;
Da wo er anfangen soll zu zählen
racestart = GetTickCount();
Letzter Checkpoint
new name[24];
GetPlayerName(playerid,name,24);
new string3[64];
new timeMs = ( GetTickCount() - racestart );
new minuten = (timeMs/60000);
timeMs -= (minuten * 60000);
new sekunden = (timeMs/1000);
format(string3, sizeof string3," %s (Zeit:d:d)",name,minuten,sekunden);
SendClientMessageToAll(grün,string3);
/e1
mfg
@*GHOSTRIDER* Er hatt was komplett anderes vor
er will die Zeit wissen bis der Nächste zug kommt
Alles anzeigenGuten morgen breadfish,
ich möchte heute herausfinden, wie lange ein user von "Start" bis "Ziel" brauchte z.B.
Start 02:34:55 -------------------------------------- Ziel: 3:33:42
dabei ist der start nicht immer punkt 0.
Weiteres habe ich nicht gelesen.
Dann verknüpf deine Uhrzeit mit dem Start und addiere dann gettime auf die alte Uhrzeit drauf und lass es ausgeben.
Oder Frag einfach ab um wie viel Uhr dies das geschieht, dann wann er am Ziel ist und wie gesagt subtrahieren.
Die Funktion ist da, ein bisschen anpassen sollte man aber können
Macht er doch schon Lese mal die Beiträge über dich
Ich habe ges geschafft
tempS = ZugZeiten[UpdateNumber][0] - playerSek;
tempM = ZugZeiten[UpdateNumber][1] - playerMin;
tempH = ZugZeiten[UpdateNumber][2] - playerHour;
if(tempS < 0)
{
tempS+=60;
tempM--;
}
if(tempM < 0)
{
tempM += 60;
tempH--;
}
if(tempH < 0)
{
tempH = 0;
}
printf("%d, %d, %d zeit des Zuges",ZugZeiten[UpdateNumber][2],ZugZeiten[UpdateNumber][1],ZugZeiten[UpdateNumber][0]);
printf("%d, %d, %d zeit Spielerzeit",playerHour,playerMin,playerSek);
printf("%d, %d, %d zeit Zwischenzeit",tempH,tempM,tempS);
falls es einer braucht muss ers nurnoch nachvollziehen können und variablen erstellen.