Wie umgeht man xx viele Variablen

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
  • Ja ich denke die der Überschrift sagt schon alles
    Ich geb mal als Beispiel folgendes:
    //MAX_PLAYERS Variablen
    new Eingeloggt[MAX_PLAYERS];
    new LoginZeit[MAX_PLAYERS];
    new KrankenhausTimer[MAX_PLAYERS];


    new ProbeFahrtTimer[MAX_PLAYERS];
    new Probecar[MAX_PLAYERS];


    new HospitalTime[MAX_PLAYERS];
    new trailer[MAX_PLAYERS];
    new Ueberweiser[MAX_PLAYERS] = -1;
    new tanktimer[MAX_PLAYERS];
    new Float:PPos[3][MAX_PLAYERS];
    new Anfrage[MAX_PLAYERS];
    new AnfrageID[MAX_PLAYERS] = -1;
    new ZielHaus[MAX_PLAYERS] = -1;
    new testcar[MAX_PLAYERS] = -1;


    //Support Ticketsys
    new SupportTicket[MAX_PLAYERS];
    new DeinSupport[MAX_PLAYERS];
    new bool:TicketAngenommen[MAX_PLAYERS];


    //Tacho
    new Float:XT[2][MAX_PLAYERS],Float:YT[2][MAX_PLAYERS],Float:ZT[2][MAX_PLAYERS];
    new tachotimer[MAX_PLAYERS];


    //Autosystem
    new motor,lichter,alarm,tueren,bonnet,boot,objective;
    new bool:Motor[MAX_VEHICLES] = false;
    new bool:Tueren[MAX_VEHICLES] = false;
    new cTank[MAX_VEHICLES];
    new Carkey[MAX_PLAYERS];


    //BOOLS
    new bool:JobAnnahme[MAX_JOBS][MAX_PLAYERS];
    new bool:AktuellerCP[MAX_JOBS][MAX_PLAYERS];
    new bool:HatGemietet[MAX_PLAYERS];
    new bool:TanktGerade[MAX_VEHICLES]=false;
    new bool:inHaus[MAX_PLAYERS];
    new bool:HatProbeFahrt[MAX_PLAYERS];
    new bool:AdminDuty[MAX_PLAYERS];


    Ich denke mal soviele Variablen zu erstellen ist nicht so gut.
    Kann man das irgendwie besser lösen? alle in ein enum oder so?


  • Mir fällt da nur ein enum ein Beispiel



    new Name[MAX_PLAYERS];
    new lala[MAX_PLAYERS];
    new keineahnung[MAX_PLAYERS];


    //Recourcensparender:


    enum infos
    {
    Name,
    lala,
    keineahnung
    }
    new Infos[MAX_PLAYERS][infos];


    edit: [ /pwn ] vergessen

  • Ja hier,Ich.


    Ich schlage dir Bitmanipulation vor, um folgende Variablen zu "kürzen":

    //Autosystem
    new bool:Motor[MAX_VEHICLES] = false; // <-- Das hier initialisiert nicht wirklich richtig.Das merkst du allerdings nicht,da standartmäüig alles sowieso mit 0 / false initialisiert wird.
    new bool:Tueren[MAX_VEHICLES] = false; // = { false,...}; -->
    new bool:TanktGerade[MAX_VEHICLES]=false;


    // == > Von 3 auf 1


    //BOOLS
    new bool:JobAnnahme[MAX_JOBS][MAX_PLAYERS];
    new bool:AktuellerCP[MAX_JOBS][MAX_PLAYERS];


    // == > 2 auf 1


    new bool:HatGemietet[MAX_PLAYERS];
    new bool:inHaus[MAX_PLAYERS];
    new bool:HatProbeFahrt[MAX_PLAYERS];
    new bool:AdminDuty[MAX_PLAYERS];
    new bool:TicketAngenommen[MAX_PLAYERS];


    // == > 5 auf 1


    Das klappt auch alles über weniger große Variablen.