Frage zu GetPlayerName

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
  • Guten Abend,


    Ich habe eine kleine Frage.
    Wenn ich das so mache,
    #define GetName(%0) new nameg[MAX_PLAYER_NAME];GetPlayerName(%0,nameg,sizeof nameg);return nameg;
    bekomme ich Fehler angezeigt. Ich weiß, GetPlayerName gibt die Länge von den Zeichen des Namens zurück.
    error 029: invalid expression, assumed zero
    error 017: undefined symbol "nameg"
    warning 215: expression has no effect
    error 001: expected token: ";", but found "]"
    fatal error 107: too many error messages on one line
    Das sind die Zeilen wo ich diese Funktion dann nutze.


    Wenn ich das so mache:
    stock SpielerName(playerid)
    {
    new nname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nname,sizeof nname);
    return nname;
    }
    Diese Art den Namen auszulesen soll ja nicht ganz schnell sein, wie ich gehört habe.
    Kann mir das mal einer mit #define zeigen, bzw. erklären was ich da falsch mache?


    Mit freundlichen Grüßen,
    PAWN

  • Das kannst du nicht alles in einem Makro machen, aber so:


    //Oben im Script
    #define GetName(%0) pName[%0]


    static pName[MAX_PLAYERS][MAX_PLAYER_NAME];


    //Unter OnPlayerConnect
    GetPlayerName(playerid,pName[playerid],MAX_PLAYER_NAME);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Oke, ich danke dir ;)
    Ich wusste wohl das es so nicht geht wie ich es gemacht habe, wusste aber nicht wie es sonst gehen sollte :D