Millisecs Ersatz

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Pummelie

Betreff: Millisecs Ersatz

BeitragMi, Aug 11, 2010 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
So, weiß jetzt nicht ob ich das richtige Forum dafür getroffen habe, also bei bedarf bitte erschieben Smile

Mein Problem ist, das Millisecs ja einen Int zurückgibt, und damit nicht ewig hält, gibt es eine Möglichkeit einen Befehl der wie Millisecs agiert (muss ja nicht die Systemlaufzeit sein, kann ja zb. die Programm Laufzeit sein...) der eine String zurückgibt?

Und, damit jetzt keine solche Sachen kommen wie: "Das Limit erreicht man doch nie!" oder "Das ist schon so gut wie es ist, und eh nicht erreichbar für den Normalbenutzer", ich habe das Limit erreicht...
It's done when it's done.

Xeres

Moderator

BeitragMi, Aug 11, 2010 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du erwartest, dass der Rechner länger als ~27 Tage läuft, musst du nur den einmaligen "Sturz" ins negative behandeln, ansonsten wird der Wert doch wieder größer?
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)
 

Omenaton_2

BeitragMi, Aug 11, 2010 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mir auch schon wegen das "Zu groß werden" der Zeitvariablen in meinem Spiel gemacht.
Dazu habe ich mir ein "Echtzeit-System" ausgedacht. Weil es ein wenig kompliziert ist, verwende ich es trotzdem nur vereinzelt.
Vielleicht bringt dich das auf eine Idee, die dir helfen könnte :

Code: [AUSKLAPPEN]
   If TMR_Gt + 250 <= MilliSecs() Then ; 1 Quad (0.25 sec) ist um
      
      GTimeQuads = GTimeQuads + 1
      TMR_Gt = MilliSecs()
            
      
      If GTimeQuads = 4 Then          ; Sekunden
      
         GTimeSecs = GTimeSecs + 1
         
         If GTimeSecs >= 60 Then    ; Minuten
                     
            GTimeMins = GTimeMins + 1
            
            If GTimeMins >= 60 Then ; Stunden
            
               GTimeHours = GTimeHours + 1
               
                  If GTimeHours >= 24 Then ; Stunden
            
                     GTimeDays = GTimeDays + 1
               
                  EndIf               
            
            EndIf      
         
         EndIf
            
      EndIf

      
      If GTimeQuads  =  4 Then GTimeQuads = 0
      If GTimeSecs  >= 60 Then GTimeSecs    = 0
      If GTimeMins  >= 60 Then GTimeMins    = 0
      If GTimeHours >= 24 Then GTimeHours = 0
      
      AktTimeAllInSecs = GTimeSecs + (GTimeMins * 60) + (GTimeHours * 3600) + (GTimeDays * 86400)      
      
   EndIf   

Pummelie

BeitragMi, Aug 11, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke wrd ich mir mal genau angucken...

Ist nur so, das ich wirlich viele Anwendungen auf meinem Server zu laufen habe, und diese (jedenfall meine eigenen) funktionieren gar nicht mehr, oder komplett falsch wenn Millisecs rumzickt.
It's done when it's done.
 

MacroMan

BeitragDo, Aug 12, 2010 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
...nimm doch mit CurrentTime() und lösch dir die Punkte raus.

...oder machs über eine dll...

BladeRunner

Moderator

BeitragSo, Aug 15, 2010 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Maskiere millisecs mit $7fffffff, damit wird das Vorzeichen abgewürgt. Kritisch ist dann nur noch der Moment des Vorzeichenwechsels, aber der ist mit einer kleinen Abfrage leicht kaschiert.
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 BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group