OnPlayerUpdate @ Experten

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
  • moin moin,
    und zwar hab ich folgende Frage:
    Ich hab eben mein Script ein bisschen auf Performance durchgeschaut und da fielen mir ein paar Timer auf. Jetzt kam mir die Idee es ohne Timer zu machen da die Funktion OnPlayerUpdate ja eh jede Sekunde 20 mal aufgerufen wird. Nur ist das jetzt besser wenn ich manche Sachen unter OnPlayerUpdate mache oder sind die Timer eine bessere Lösung?
    public OnPlayerUpdate(playerid)
    {
    new SpielerName[24];
    new Text[64], Float:russi;
    if(GetPlayerArmour(playerid,russi))
    {
    if(russi>0)
    {


    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Text,sizeof(Text),"%s wurde gebannt. Grund: Armourhack",SpielerName);
    printf("%s wurde gebannt. Grund: Armourhack", SpielerName);
    SendClientMessageToAll(FARBE_ROT,Text);
    PlayerInfo[playerid][pBan] += 1;
    Ban(playerid);
    }
    }

    return 1;
    }

  • Meiner Meinung nach erstellst du zuviele Arrays. Bzw. du erstellst sie am falschen Ort. Ich persönlich würde das ganze eher so gestalten:
    public OnPlayerUpdate(playerid)
    {
    new Float:pArmour;
    if(GetPlayerArmour(playerid, pArmour)) {
    if(pArmour > 0) {
    new Text[64];
    GetPlayerName(playerid, Text, sizeof Text);
    format(Text, sizeof Text, "%s wurde gebannt. Grund: Armourhack", Text);
    print(Text);
    SendClientMessageToAll(FARBE_ROT, Text);
    PlayerInfo[playerid][pBan] ++;
    Ban(playerid);
    }
    }
    return 1;
    }


    Ob es ressourcenschonend ist, darüber lässt sich streiten. Meiner Meinung nach kann man das ganze schon hernehmen, jedoch kanns bei vielen Usern auf einem schwächeren Server zu Laggs kommen.

  • ja das ist doch jetzt egal wo und wieviele ich erstelle^^ das sollte nur ein beispiel werdenxD.
    nagut ich frag mal im englischen forum ob es da einer weiß. wenn die methode wirklich besser ist als für alles einen neuen timer zu machen werde ich das nehmen.
    ich lass das mal offen damit vll Einstein DMA oder Blackfox nochwas schreiben können

  • Ich bin ja zu dumm. ^^
    Ne Scherz, aber in deinem Beispiel ist der Fehler dass du die Arrays erstellst bevor du dir sicher bist ob du sie brauchst. Wenn die Abfrage jetzt false ausgibt, dann hast du 2 Arrays @ insgesamt 88 Cells für nix erstellt.

  • Schau dir mal dieses Script an.YUP - Y_Less's Update Peripherals - 0.3
    Hab dieses Script jetzt auch in eines meiner Projekte eingefügt,obwohl Ich nicht der Fan bin von OnPlayerUpdate und es eigentlich auch nicht benutzen möchte.