Durch multidimnensionales Array loopen ?

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
  • Hey,
    ich arbeite derzeit noch an meinem Map System und bin auf ein Problem gestoßen. Ich muss durch ein multidimensionales Array loopen, aber das habe ich noch nie gemacht bzw. verstanden. Ich erkläre mal was ich vor habe.
    Hier mein Array + Enum:
    enum Maps
    {
    MapID,
    mapname[64],
    objects[MAX_MAP_OBJECTS],
    removeModel[MAX_REMOVE_CODES],
    Float: removeX[MAX_REMOVE_CODES],
    Float: removeY[MAX_REMOVE_CODES],
    Float: removeZ[MAX_REMOVE_CODES],
    Float: removeRadius[MAX_REMOVE_CODES],
    };
    new ServerMaps[MAX_MAPS][Maps];

    Ich möchte wenn jemanden den Server betritt, dass die entsprechenden Gebäude entfernt werden. Wie mache ich das mit mehreren Removecodes ? So habe ich angefangen (würde nur mit einem Removecode funktionieren):
    stock RemoveObjectsAtConnect(playerid)
    {
    for(new i=0;i<sizeof(ServerMaps);i++)
    {
    RemoveBuildingForPlayer(playerid,removeModel,removeX,removeY,removeZ,removeRadius);
    }
    return 1;
    }
    Wäre nett, wenn mir jemand weiterhelfen könnte :thumbup:


  • Ups hatte das ServerMaps[i] vergessen, aber das ist trotzdem nicht die Lösung für mein Problem, glaube ich zumindest 8|

  • Syno: Der Array hat 3 Dimensionen, nicht 2 :whistling:


    Oskaar1994: Was ist denn "MAX_REMOVE_CODES" ?
    So wie das scheint, ist das ein eher unnötiger Code der dort nicht hin muss.
    Das lässt sich ohne direkten Code einblick oder Erklräung deiner Seits wie das System funktioniert nicht genau sagen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • stock RemoveObjectsAtConnect(playerid)
    {
    for(new i=0;i<MAX_MAPS;i++)
    {
    for(new r = 0; r < MAX_REMOVE_CODES; r++)
    {
    RemoveBuildingForPlayer(playerid,ServerMaps[i][removeModel][r],ServerMaps[i][removeX][r],ServerMaps[i][removeY][r],ServerMaps[i][removeZ][r],ServerMaps[i][removeRadius][r]);
    }
    }
    return 1;
    }


    So.


  • Danke :) Da hatte ich auch schon dran gedacht, aber ich dachte eine Loop in einer Loop würde nicht funktionieren :D
    *edit* Zu früh gefreut, der Code bringt den Client zum Abstürzen :D

    Einmal editiert, zuletzt von Oskaar1994 ()