Laggs bei Timer

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
  • Guten Abend Community,


    Ich habe eine eigene Wantedanzeige über zwei Textdraws gemacht, allerdings laggt mein Server seitdem ein bisschen... Was kann ich dagegen tun - Vielleicht hab ich was falsch gemacht oder könnte es ändern.
    Wenn ein Spieler Wanteds bekommt sollte es schnell angezeigt werden - Nutze kein SetPlayerWantedLevel mehr.


    Code:
    Oben im Script
    forward WAUpdater(playerid);


    OnGameModeInit
    for (new i=0; i< MAX_PLAYERS; i++)
    {
    SetTimerEx("WAUpdater", 1000, 1,"d",i);
    }



    public WAUpdater(playerid)
    new wantedlevel;
    wantedlevel=GetPVarInt(playerid,"PVarWanteds");
    new wtdstring[10];
    format(wtdstring, sizeof(wtdstring), "%d", wantedlevel);

    TextDrawSetString(wantedzahl[playerid],wtdstring);

    if(wantedlevel==1 || wantedlevel>1)
    {
    TextDrawShowForPlayer(playerid, wantedstern);
    TextDrawShowForPlayer(playerid, wantedzahl[playerid]);
    }
    if(wantedlevel==0)
    {
    TextDrawHideForPlayer(playerid, wantedstern);
    TextDrawHideForPlayer(playerid, wantedzahl[playerid]);
    }
    return 1;


    Danke im Voraus.


    Mit freundlichen Grüßen,
    TheFirstRush

  • Mach das public zu:


    forward WAUpdater();
    public WAUpdated()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new wantedlevel;
    wantedlevel=GetPVarInt(i,"PVarWanteds");
    new wtdstring[10];
    format(wtdstring, sizeof(wtdstring), "%d", wantedlevel);

    TextDrawSetString(wantedzahl[i],wtdstring);

    if(wantedlevel==1 || wantedlevel>1)
    {
    TextDrawShowForPlayer(i, wantedstern);
    TextDrawShowForPlayer(i, wantedzahl[i]);
    }
    if(wantedlevel==0)
    {
    TextDrawHideForPlayer(i, wantedstern);
    TextDrawHideForPlayer(i, wantedzahl[i]);
    }
    }
    return 1;
    }



    Und OnGameModeInit:
    for (new i=0; i< MAX_PLAYERS; i++)
    {
    SetTimerEx("WAUpdater", 1000, 1,"d",i);
    }
    zu
    SetTimer("WAUpdater", 1000, 1);




    Ein Timer ist besser als so viele.

  • Jeffry:
    Bringt es auch was, beim Callback abzufragen ob der Spieler (i) überhaupt Connected ist? ;)


    Sonst gehst du ja umsonst 500 Spieler durch, es sei denn man hat MAX_PLAYERS umdefiniert.

  • @[NGD]Manne: Ergibt Sinn... Gott bin ich dumm... MAX_PLAYERS ist bei mir als 375 Definiert, weil so viele Leute auf meinen Server können.


    Jeffrey: Du bist ein Gott :DD Hilfst mir einfach bei jedem Problem. Ich wünschte ich hätte so viel Wissen, wie du was Pawn betrifft :3
    Danke an euch, Erledigt.


    #Edit: C:\Users\test\Desktop\SAMP-Server\Aktuell 0.3z\gamemodes\RPG.pwn(2818) : warning 235: public function lacks forward declaration (symbol "WAUpdated")


    hab das forward aber drin :O


    #Edit2: Hatte nen Tippfehler...


    Mit freundlichen Grüßen,
    DeFiarsdRash XDDD

    Einmal editiert, zuletzt von TheFirstRush () aus folgendem Grund: Warning