Enum auf einen Spielernamen speichern

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
  • Gibt es möglichkeiten ein Enum auf einen Spieler zuzuweisen, so das ich kein "playerid" eingeben muss sondern den namen.
    Falls jetzt jemand nicht weiß was ich meine habe ich ein kleines Beispiel:

    if(SpielerInfo[Spieler(playerid)][Adminlevel] > 0)

    der zugehörige stock:

    stock Spieler(playerid)
    {
    new Player[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Player,sizeof(Player));
    return Player;
    }

  • Würde schon gehen. Du musst nur durch den namen an die Playerid drankommen,
    Irgendwer hat mal eine funktion gemacht names "GetIdByName" .. such mal danach


    //Edit

    stock GetIdByName(name[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strcmp(name,PlayerName[i],true) == 0)
    {
    return i;
    }
    }
    }
    return -1;
    }

  • Wenn man ein Autohaussystem macht ist es am einfachsten alles in einem Enum zu speichern so weit bin ich gekommen. Das Problem ist wenn man das mit playerids macht bleibt der enum für playerid 0,1,2,3 nach dem leaven erhalten, so das der nächste Spieler mit der gleichen Id die gleichen Fahrzeuge hat wie der vorgänger. Es ist aber nur so wenn der nachjoiner ein freien Autoslot hat. Mit alle werte auf 0 setzten hatts nicht ganz so funktioniert wie ich es mir vorgestellt habe: Vor dem joinen alles auf 0 setzten und danach die Fahrzeuginfos einfügen.