2009-08-23 9 views
1

Ich verstehe nicht, warum dieser Code nicht misst, wenn 4 Stunden verstrichen sind.Stoppuhr nicht inkrementiert

if (guildVaultRunStarter.IsRunning) 
    { 
     if (guildVaultRunTimer.ElapsedMilliseconds > 4 * 60 * 60 * 1000) // 4 hours 
     { 
      guildVaultRunStarter.Reset(); 
      log("Its been over 4 hours - empty bags."); 
      return true; 
     } 
     else 
     { 
      log("guildVaultRunTimer.ElapsedMilliseconds = " + 
       guildVaultRunTimer.ElapsedMilliseconds.ToString() + "."); 
     } 
    } 
    else 
    { 
     log("Start the 4 hour guild vault countdown."); 
     guildVaultRunStarter.Reset(); 
     guildVaultRunStarter.Start(); 
    } 

Die Protokollierung zeigt dies:

[8/23/2009 12:17:21 PM]:Start the 4 hour guild vault countdown. 
... 
[8/23/2009 12:26:53 PM]:guildVaultRunTimer.ElapsedMilliseconds = 0. 
... 
[8/23/2009 12:27:26 PM]:guildVaultRunTimer.ElapsedMilliseconds = 0. 

Warum ist es immer 0?

+0

Fügen Sie den Tags immer die Sprache hinzu, während Sie eine Frage mit Beispielcodes stellen. Es wird dir eine bessere Zielgruppe bieten :) –

Antwort

0

Wo instanziieren Sie den Timer und wo/wie wird dieses Bit Code aufgerufen?

+0

Wenn die Klasse gestartet ist, habe ich: private Stoppuhr gildeVaultRunStarter = new Stoppuhr(); Der Code wird aufgerufen, wenn der Charakter einen Mob tötet und ein Item plündert. Die Taschen füllen 5 Stunden, also ist es die Idee, sie in 4 zu leeren. – Patrick

4

Ist es nur ein Tippfehler zwischen guildVaultRunTimer und guildVaultRunStarter?

heißt

if (guildVaultRunStarter.ElapsedMilliseconds > ... 

Sie scheinen nie guildVaultRunTimer zu starten, nachdem alle.

+0

/Ich schaudere vor Schock und schwöre, nie wieder ähnliche Variablennamen zu haben. Danke! – Patrick