Wieviele Timer sind OKAY?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey..^^


    Ich habe jetzt 4 Timer am laufen, und schon gemerkt dass mein HomeServer leicht laggy ist.


    SetTimer("T1", 5000, 1);
    SetTimer("T2",60000,1);
    SetTimer("T3",2000,1);
    SetTimer("T4",3000,1);


    Ja.. es wäre schon wichtig, dass sie sich so schnell aktualisieren^^

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Wenn die Intervalle nicht zu niedrig sind und der Rest ressourcensparend ist kannst du auch 5 Timer verwenden. Nur wenn man jetzt 5 Timer mit 50er Intervallen hat, die dann noch ein paar harte Brocken wie speichern/laden beinhalten.... Versuch es erst gar nicht.

  • Timer kannst du eigentlich beliebig viele machen.
    Es kommt nur darauf an, wie oft/schnell sie sich wiederholen und was für ein public sie aufrufen.
    Also ob das jetzt nur ne kleine Abfrage ist, oder ob du was großes wie Accountspeichern durchführst.
    Laggs entstehen dann, wenn mehrer "anspruchsvolle" publics zur selben Zeit aufgerufen werden.


    Deine Timer werden sich zwangsläufig überschneiden :


    SetTimer("T3",2000,1);
    SetTimer("T4",3000,1);


    Diese zwei werden alle 6 sekunden gleichzeitig aufgerufen.
    Das beste ist, du verwendest einen globalen Timer und führst dann da die Schritte aus.


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Ich hab im moment ca 20 timer in meinem script, manche sogar mit 500er und 25er intervallen, un bis jetzt gibts keine laggs! Und der public mit dem 25er intervall is eig seeeehr anspruchsvoll ^^
    Also timer kannst viele machen, sollten halt nit zu viele sein die nen kleinen intervall haben un viel drin passiert. Wenn du sowas wie account saven machst, brauchst du eig garkein timer, ich machs so, dass der acc nur gesaved wird, wenn sich etwas wichtiges passiert is, wie z.B. geld ändert sich usw.


    MFG, Robdeflop®

  • Habe mein Rank System mit einem Timer laufen...^^


    Aber das muss ja eig garnit sein...


    Wo packe ich das nur rein...^^


    OnPlayerDeath??

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Also ich hab ma eben ein bisschen gerechnet und das kommt dabei raus wenn du alle Timer in einen Timer packen willst:


    Einfach deine Timer da rein wos steht (wird zwar bisschen mehr Code aber entlastet den Server ;D


    new TimerCount;
    forward TimerName();


    SetTimer("TimerName", 1000, true);


    public TimerName()
    {
    TimerCount++;
    switch(TimerCount)
    {
    case 60:
    {
    TimerCount = 0;
    // Alle 4 Timer hier rein
    }
    case 5, 25, 35, 55:
    {
    // Timer 5000 hier
    }
    case 3, 9, 21, 27, 33, 39, 51, 57:
    {
    // Timer 3000 hier
    }
    case 2, 4, 8, 14, 16, 22, 26, 28, 32, 34, 38, 44, 46, 52, 56, 58:
    {
    // Timer 2000 hier
    }
    case 15, 45:
    {
    // Timer 5000 und 3000
    }
    case 10, 20, 40, 50:
    {
    // Timer 5000 und 2000
    }
    case 6, 12, 18, 24, 36, 42, 48, 54:
    {
    // Timer 3000 und 2000
    }
    case 30:
    {
    // Timer 5000, 3000 und 2000
    }
    }
    return 1;
    }

  • Ich habe auf meinem Server immer meist 1 - 2 Timer für alles laufen, kostet zwar ein paar Stündchen Zeit das alles umzubauen, aber es lohnt sich meiner Meinung nach.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • new TimerCount;
    forward TimerName();
    // OnGameModeInit : globalen Timer starten :
    SetTimer("TimerName", 1000, true);


    public TimerName()
    {
    TimerCount++;
    // Der Timer wiederholt sich im Sekundentakt. Dabei wird die Varaible Timercount erhöht
    // Der folgende Teil kann auch einfach mit if(TimerCount == 60) ... ersetzt werden
    // Allerdings ist es mit switch einfacher
    switch(TimerCount)
    {
    case 5,10,15,20,25,30,35,40,45,50,55,60:
    {
    // Hier kannst du den Teil einfügen, der alle 5 Sekunden ausgeführt wird.
    }
    case 10,20,30,40,50,60:
    {
    //Hier wird alles alle 10 Sekunden ausgeführt
    }
    case 60:
    {
    TimerCount = 0;

    }
    }
    return 1;
    }


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • ich frag mich nur ob es nicht das selbe ist, wie einzelne timer zu machen oO weil eigendlich wird ja immer das gleiche passieren, egal ob ich es in einen extra public mit case mache oda nur mit timern un für jeden timer nen public^^

  • Ich hab letztens 2Timer vertauscht einer war der SaveAll (Speichert alle Accounts) und der andere einer mit nem Interval von 20msek hab ausversehen alle 20msek die Accs gespeichert und wenn ihr Ingame was schreibt => Bang Homeserver kackt ab xD

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • C:\Users\Dennis\Documents\Server\gamemodes\CST.pwn(237) : error 040: duplicate "case" label (value 3)
    C:\Users\Dennis\Documents\Server\gamemodes\CST.pwn(241) : error 040: duplicate "case" label (value 60)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Code:

    case 3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60: // Also hier soll der Timer alle 3 Sekunden ausgeführt werden
    {
    SetTimer("Timer3",3000,1);
    }
    case 60: // Und das war von dir
    {
    TimerCount = 0;
    }


    Kann einer helfen?

  • das hat Rafelder doch schon da oben .....


    alles mit 1 Timer ...

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen