#define mit if in public Methode?

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,


    ich hätte folgende Frage: Ich möchte die Maximale Anzahl an Autos, die ein User haben kann, aus der .ini des Users auslesen und je nach Premium Level definieren im Filterscript.
    Jetzt war meine erste Idee so:
    public MaxAnzahlAutos(playerid) {
    new string[128];
    format(string, 35, Player_File, GetName(playerid));

    if(P_Data[playerid][VIP] == 0) {
    #define MAX_PLAYER_VEHICLES 1
    }
    else if(P_Data[playerid][VIP] == 1) {
    #define MAX_PLAYER_VEHICLES 2
    }
    else if(P_Data[playerid][VIP] == 2) {
    #define MAX_PLAYER_VEHICLES 4
    }
    else if(P_Data[playerid][VIP] == 3) {
    #define MAX_PLAYER_VEHICLES 8
    }
    }


    Jedoch habe ich überlegt, wie ich diese Methode aufrufen könnte, um sicherzustellen, dass das auch richtig erkannt wird. Ich dachte an einen Timer im GameModeInit? Würde das funktionieren? Und vorallem: Funktioniert die Idee überhaupt, so wie ich denke?


    Ich hoffe, ihr könnt mir da nochmal helfen. :love:


    Liebe Grüße.


  • Jetzt war meine erste Idee so:


    Würde das funktionieren? Und vorallem: Funktioniert die Idee überhaupt, so wie ich denke?


    Also erst mal grundsätzlich: Nein. Wie soll den der Server wissen welche Spieler ID gemeint ist?
    Du kannst das ganz einfach machen, einfach in deinem enum z.B. ''pMaxVeh'' hinzufügen, und anstatt diesen defines schreibst du:
    P_Data[playerid][pMaxVeh] = 2; //oder ne andere Zahl


    Das ganze rufst du natürlich bei OnPlayerConnect bzw. dort wo der Spieler sich einloggt auf.