Frage zu laggs

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
  • ich zähl mal alles auf


    eine schlechte internetverbindung
    aufweändige scripte wie zb timer die kurz eingestellt sind durch die andauernden checks muss der server doppelt arbeiten
    laggs können auch durch scriptfehler veruhrsacht werden
    jeder einzelne spieler , je mehr leistung dein root oder dein pc hat auf dem der server läuft desto schneller läd auch alles
    wenn mehrere sa-mp server auf einem root oder pc laufen muss das gerät auch mehr arbeiten somit können auch laggs entstehen

  • 1. Zu Viele Timer.
    2. Zu Vieles unter OnplayerUpdate da dies automatisch alle 2 sek glaube augerufen wird.
    3. Zu Große Strings vermeiden bsp.
    Nicht :

    new string[512]; // 512 viel zu viel
    format(string,sizeof(string),"%s Willkommen auf den Server");
    SendClientMessage(playerid,FARBE,string);
    Besser :

    new string[64];
    format(string,sizeof(string),"%s Willkommen auf den Server");
    SendClientMessage(playerid,FARBE,string);
    3. Glaube ich wenn du zu oft alle spieler Abfragst.

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

  • und was is wenn der server nur die hälfte macht? d.h. er fängt an, und hört mitendrin auf und es läuft zwar normal, aber alles reagiert viel später, also nicht nach 1er sekunde, wie im timer eingestellt, sondern nach irgendwie 30 sekunden oder so... auch die autos werden nicht richtig gespawnt etc.

  • Server schlecht also vom Sponsor ?
    Internetverbindung schechht..

    /¯¯¯¯¯¯¯¯¯Steam Acc zu Verkaufen¯¯¯¯¯¯¯¯\
    |______Spiel : Counterstrike : Source_____
    _|
    |______Spiel : Day of Defeat : Source _____
    _|
    |__________Spiel : Garry s Mod __________|
    |_________Half-Life 2 : Deatmatch________|
    |_________Half-Life 2 : lost Coast_________|
    \_Preis wird noch besprochen per PN melden_/

  • 2. Zu Vieles unter OnplayerUpdate da dies automatisch alle 2 sek glaube augerufen wird.
    3. Glaube ich wenn du zu oft alle spieler Abfragst.

    2. bei mir wird OnPlayerUpdate überhaupt nicht alle 2 sekunden aufgerufen.. es wird höchstens in SaveAccounts() aufgerufen und dort jede halbe stunde (1800000 ms)
    3. und wie merkt man das? in den einzelnen timer?


    SetTimerEx... bei mir ist alles in SetTimer, wie ist das gemeint mit "nur pro Spieler"? in den publics, die die Timer aufrufen, ist immer ein for drin..


    MFG

  • 2. bei mir wird OnPlayerUpdate überhaupt nicht alle 2 sekunden aufgerufen.. es wird höchstens in SaveAccounts() aufgerufen und dort jede halbe stunde (1800000 ms)


    OnPlayerUpdate ist ein Standart-SA:MP Callback. Es wird immer aufgerufen wenn ein Spieler mit den anderen Clients synchronisiert wird - Das sind pro Sekunde ~ 20-50 Mal. Jeder der in diesem Callback Accounts updatet, ist einfach nur dumm.

  • oh sogar noch mehr.
    Das Kann man ganz einfach testen Goldkiller hatte das Mal wo gepostet,mach einfach mal print("OnplayerUpdate wurde Aufgerufen"); in der
    Public OnPlayerUpdate rein.


    Zitat

    Zu viele Slots ebenso!
    Falsch definierte MAX_PLAYERS
    etc...

    eine frage wie kann man MAX_PLAYERS falsch definieren so das es auslastung bringt ? man kanns doch höchstens niedriger machen.

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

  • eine frage wie kann man MAX_PLAYERS falsch definieren so das es auslastung bringt ? man kanns doch höchstens niedriger machen.


    Bsp:
    100 Slot Server
    // MAX_PLAYERS ist auf 500
    new gArray[MAX_PLAYERS];
    /* 500 * 4 Byte = 2000 Byte */

    Bessere Version:
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 100
    // MAX_PLAYERS ist auf 100
    new gArray[MAX_PLAYERS];
    /* 100 * 4 Byte = 400 Byte */


    Und nein, OnPlayerUpdate wird maximal 50 Mal in der Sekunde aufgerufen, da bin ich mir sicher ;)