Resource sparender ?

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
  • Hi Wollte mal fragen was Resourcen Spaarender ist.


    A. CreateVehicle(...);
    oder
    B. Auto[0] = CreateVehicle(...);


    ich meine Erstellen ist schon mal besser jetzt kommt aber das was ich wissen will. z.B. bei einem Command will ich abfragen ob er in einem Bestimmten auto ist.


    A. If(GetPlayerVehicleID(playerid) >= 20 && GetPlayerVehicleID(playerid) <= 25)


    B. for(new h = 0; h < sizeof(Auto); h++)
    {
    if(GetPlayerVehicleID(playerid) == Auto[h])


    Bei A. ist es nur eine Abfrage.
    Bei B. dauert es ein schritt länger zudem Fragt er alle Autos ab.



    Was ist den nun Besser ? also ich würde A. nehmen jedoch ist es dort Komplizierter wenn man ein Auto ein/ausfügen möchte.
    bei B. ist das ganze schon ein Bissel einfacher.

  • Das hat nicht wirklich was mit Ressourcen sparen zutun, weil du bei B einfach nur noch den Wert an eine Varialbe übergibst.


    Das Problem bei beispiel B ist, das du da nur die ModelID abfragst. Wenn du jetzt z.b 2 mal nen Sultan hast, kannst du diese durch die abfrage nicht voneinander unterscheiden, deshalbnimmt man normalerweise die vehicle id die bei CreateVehicle zurück gegeben wird.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Zitat

    Das Problem bei beispiel B ist, das du da nur die ModelID abfragst. Wenn du jetzt z.b 2 mal nen Sultan hast, kannst du diese durch die abfrage nicht voneinander unterscheiden, deshalbnimmt man normalerweise die vehicle id die bei CreateVehicle zurück gegeben wird.


    Hat er doch sowieso :-0.


    Was du dort hasst fassen hier einige eher unter dem Begriff dynamisch. Fallbeispiel a) ist relativ hardcoded mit 20 <= vehicleid <= 25. Typisches Godfather Beispiel.
    Resourcenschonender wäre Beispielsweise in Beiden Fällen folgendes:
    // a)
    new
    vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
    if( vehicleid >= 20 && vehicleid <= 25)


    // b)
    new
    vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
    for(new h = 0; h < sizeof(Auto); h++) // Angenommen Auto hat mehr als einen Eintrag.
    {
    if( vehicleid == Auto[h])