Abfragen ob Spielername gleich ist wie definierter Name

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
  • Moin Leute,

    ich würde gerne bei einem befehl abfragen oder spieler name der gleiche wie in einem define ist um dann wenn der name gleich ist einen Adminrang zu setzen,

    ich stehe irgendwie ein bisschen auf dem Schlauch.


    Danke

  • Beitrag von Kamisama ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: nvm ().
  • Danke erstmal allerdings setzt in meinem Code er das Adminlevel trozdem obwohl der name nicht übereinstimmt

    Code
    ocmd:getadmin(playerid)
    {
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid,name,sizeof(name));
        if(!strcmp(OWNER,name,true, strlen(OWNER))) return SendClientMessage(playerid,COLOR_RED,"Was glaubst du wer du bist!");
        sInfo[playerid][arang] = 1337;
        SendClientMessage(playerid,COLOR_RED,"Hey Flex dein Adminrang wurde natürlich gesetzt");
        return 1;
    }
    • Offizieller Beitrag
    • Hilfreich

    allerdings setzt in meinem Code er das Adminlevel trozdem obwohl der name nicht übereinstimmt

    Das liegt daran, dass wenn beide Strings übereinstimmen (also die ausgabe von strcmp 0 ist), du die Nachricht "Was glaubst du wer du bist" sendest.

    Es reicht nun also das ganze zu invertieren, also das ! vorne weg und hinten ran != 0



    //EDIT
    Hier dazu mal die Zeile, da die Nachricht etwas unübersichtlich ist

    Code
    // Wenn die Strings nicht übereinstimmen, also Rückgabe von strcmp nicht 0 ist, dann sende Fehlermessage
    if(strcmp(OWNER, name, true, strlen(OWNER)) != 0) return SendClientMessage(playerid,COLOR_RED,"Was glaubst du wer du bist!");
  • hier