Spieler Abfrage[If]

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
  • Hallo liebe Scripter,
    Ich kam letztens in der Schule auf eine Idee und zwar :#


    if (strcmp("/melbatt", cmdtext, true, 10) == 0)
    {
    if(GetPlayerName(playerid) == Melbatt )
    {
    SendClientMessage(playerid,Weiss,"Hallo");
    return 1;
    }
    }


    Funktioniert das? Die Fehler :
    (224) : warning 202: number of arguments does not match definition
    (224) : warning 202: number of arguments does not match definition
    (224) : error 017: undefined symbol "Melbatt"


    Wäre schön wenn es sowas geben würde...
    Ich hoffe ihr habt ideen ...


    Lg Melbatt

  • if (strcmp("/melbatt", cmdtext, true, 10) == 0)
    {
    new plname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,plname,MAX_PLAYER_NAME);
    if(strcmp("Melbatt", plname, true) == 0)
    {
    SendClientMessage(playerid,Weiss,"Hallo");
    return 1;
    }
    }


    schnell ausm kopf geschrieben.

  • Grundkenntnisse?!?


    1. GetPlayerName funktioniert nicht so wie du dir das da gedacht hast
    2. Selbst wenn deine Methode funktionieren würde wäre Melbatt ein String und du müsstest "Melbatt" abfrage
    3. so vergleicht man keine Strings


    Das folgende sollte funktionieren
    if (strcmp("/melbatt", cmdtext, true, 10) == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    if(!strcmp(name,"Melbatt",false))
    {
    SendClientMessage(playerid,Weiss,"Hallo");
    return 1;
    }
    }


    /edit: [DT]Sniper war schneller^^


  • Aber du fragst : Wenn er ist nicht ist ... TU "SendClientMessage" . Warum nicht If und true?

  • Nein
    1. Das If(....,true/false) steht für die Beachtung der Schreibweise Wenn du es auf true stellst ist MeLBaTT das gleiche wie Melbatt und wenn es auf false steht muss man genau Melbatt heißen
    2. if(!strcmp(name,"Melbatt",false)) und das if(strcmp(name,"Melbatt",false) == 0) ist das gleiche
    Hast du dir schonmal Gedanken gemacht wieso so ein Command wie der von dir "entwickelte" funktioniert?
    strcmp steht für "strings compare" also Strings vergleichen also vergleicht er das Ingame von dir eingegebene mit /melbatt
    Schau dir dochmal die Struktur des /melbatt Commands an