Server lagg

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
  • Zu viele Timer?
    OnPlayerUpdate mit zuviel Code "zugebombt"?
    Allgemein Ressourcenfressend gescripted(rießige Strings/viele "MAX_PLAYERS Schleifen") wäre alles was mir so auf Anhieb einfallen würde
    aber ohne Code kann ich nicht mehr sagen

  • Hmm also bei OnplayerUpdate steht nur das


    Function OnPlayerUpdate(playerid)
    {
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);
    if(MussTasteDruecken[playerid] == 1)
    {
    if(ud < 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Gut. Du bist da :D");
    MussTasteDruecken[playerid] = 0;
    }
    }
    return 1;
    }

    Wer kann mir helfen?
    //edit was hingefügt

  • Such dein Script nach SetTimerEx nach und suche dann den public dazu und wenn ein public einen riesigen Code hat Poste ihn mal hier vielleicht liegt es am Code der jede x ms ausgeführt wird.


    Hmm vllt das:
    Function bombexplode(playerid)
    {
    DestroyObject(bombe);
    CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-10, PlayerExplosionY[1]+10, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1]-15, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-15, PlayerExplosionY[1]+15, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-5, PlayerExplosionY[1]-5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+5, PlayerExplosionY[1]+5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-7.5, PlayerExplosionY[1]+7.5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1]-20, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-20, PlayerExplosionY[1]+20, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-30, PlayerExplosionY[1]+30, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+30, PlayerExplosionY[1]-30, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-30, PlayerExplosionY[1]+30, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1], PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1], PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1], PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1], PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1], PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-10, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-20, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-25, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-15, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-7.5, PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-10, PlayerExplosionY[1]-10, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-15, PlayerExplosionY[1]-15, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-20, PlayerExplosionY[1]-20, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]-25, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1]+7.5, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]+10, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1]+15, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1]+20, PlayerExplosionZ[1], 10, 0);
    CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 10, 0);
    WantedPoints[playerid] += 6;
    SetPlayerCriminal(playerid,255, "BombenAnschlag!");
    GivePlayerMoney(playerid,5000);
    SendClientMessage(playerid, Leichtrot, "Bombe ist explodiert! Du bekommst $5000.");
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(IsACop(i) || IsPlayerInFrac(i, 22))
    {
    GangZoneStopFlashForPlayer(i,bombzone);
    GangZoneHideForPlayer(i,bombzone);
    GangZoneDestroy(bombzone);
    SendClientMessage(i,Rot," Die Bombe ist explodiert!");
    }
    }
    SetTimer("Abkling", 90000 , 0);
    Bombactivated=0;
    }


    //edit was geändert
    //edit1 brauche schnell hilfe, sonst kann ich den script in müll werfen

  • OKay, also ich sehe nicht wirklich etwas, jetzt würde ich dich bitten, such dein komplettes Script ab nach SetTimer- und Ex, wo überall nach der Timer länge (nach den ms) true oder 1 steht (alle Timer die sich wiederholen) und schau dir dann mal die publics von diesen an, vielleicht ist dort ein riesiger Code und wie Speicherst du die Spieler dini oder mysql?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • OKay, also ich sehe nicht wirklich etwas, jetzt würde ich dich bitten, such dein komplettes Script ab nach SetTimer- und Ex, wo überall nach der Timer länge (nach den ms) true oder 1 steht (alle Timer die sich wiederholen) und schau dir dann mal die publics von diesen an, vielleicht ist dort ein riesiger Code und wie Speicherst du die Spieler dini oder mysql?


    Also die Spieler speichere ich mit Mysql,
    Aber was meinst du mit Sekunde?

  • Also es kann durchaus daran liegen da du mit MySql Speicherst und wenn du die Funktion mysql_SetString etc. (aus maddins Tutorial) benutzt zum Speichern kann durchaus dies die Laggs verursachen da du nur für eine Variable einen Query öffnest und bei ca. 40-50 Variablen die du Speicherst * ca.10 Spieler kann es wirklich zu sehr massiven Laggs führen, aber nur wenn du auch diese Funktion benutzt.

  • Also es kann durchaus daran liegen da du mit MySql Speicherst und wenn du die Funktion mysql_SetString etc. (aus maddins Tutorial) benutzt zum Speichern kann durchaus dies die Laggs verursachen da du nur für eine Variable einen Query öffnest und bei ca. 40-50 Variablen die du Speicherst * ca.10 Spieler kann es wirklich zu sehr massiven Laggs führen, aber nur wenn du auch diese Funktion benutzt.


    Hmm also hier den script wo es gespeichert wird:
    http://pastebin.com/zgRbXM10

  • Weißt du vielleicht wann es genau laggt (z.b. beim Speichern, Befehl ausführen etc.)?
    Und es könnte zu 70% an deiner Speicher Methode liegen da du dann sehr viele querys ausführt könntest du auch noch vielleicht Sagen wo du überall SavePlayer(playerid) ausführst?


    Und du sollst es so bald wie möglich das Speichern umschreiben in:


    format(query, 500, "UPDATE samp_players SET Passwort = '%d', `Level`= '%d' WHERE Name = '%s'",
    PlayerInfo[playerid][pKey],
    PlayerInfo[playerid][pLevel],
    PlayerName[playerid]
    //etc..);
    mysql_query(query);


    So führst du für einen Spieler dann nur einen query aus und im End Effekt müsste es um die hälfte weniger laggen

  • Sieht man doch schon, du führst bei OnPlayerDisconnect 30 Querys pro Spieler aus.

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

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