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
  • Hallo, ich habe einen Befehl "/scheine" gemacht, mit dem ich jemand anderen meine Scheine zeigen kann, jedoch wenn ich jemand anders meine Scheine zeige steht bei mir "Du hast [KilleR]( Mein Name) deine Scheine gezeigt, obwohl dort der Name des anderen stehen sollte, der Rest funktioniert.


    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    if(!strcmp(strget(cmdtext,0),"/scheine"))
    {
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /scheine [ID]"); return 1; }
    format(string,sizeof string,"Du hast %s deine Scheine gezeigt.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat dir seine Scheine gezeigt.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    if(Spielerinfo[pID][Autoschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist vorhanden!");}
    if(Spielerinfo[pID][Waffenschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist vorhanden!");}
    }


    Ich hoffe, dass mir jemand helfen kann.
    LG


  • if(!strcmp(strget(cmdtext,0),"/scheine"))
    {
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /scheine [ID]"); return 1; }
    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    format(string,sizeof string,"Du hast %s deine Scheine gezeigt.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat dir seine Scheine gezeigt.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    if(Spielerinfo[pID][Autoschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist vorhanden!");}
    if(Spielerinfo[pID][Waffenschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist vorhanden!");}
    }


    Ich glaub so muss es gehen, vorher gings nicht weil du den namen abgefragt hast bevor der server weiß welche id er nehmen soll


  • if(!strcmp(strget(cmdtext,0),"/scheine"))
    {
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /scheine [ID]"); return 1; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(aname));
    GetPlayerName(playerid, sendername, sizeof(oname));
    format(string,sizeof string,"Du hast %s deine Scheine gezeigt.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat dir seine Scheine gezeigt.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    if(Spielerinfo[pID][Autoschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist vorhanden!");}
    if(Spielerinfo[pID][Waffenschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist vorhanden!");}
    }


    so müste es gehn


    MFG waidi


    /edit name falsch geschrieben ^^

  • D:\Downloads\samp03bsvr_R2_win32 (2)\gamemodes\Selfmade.pwn(459) : error 017: undefined symbol "giveplayerid"
    D:\Downloads\samp03bsvr_R2_win32 (2)\gamemodes\Selfmade.pwn(459) : error 035: argument type mismatch (argument 2)
    D:\Downloads\samp03bsvr_R2_win32 (2)\gamemodes\Selfmade.pwn(460) : error 017: undefined symbol "sendername"
    D:\Downloads\samp03bsvr_R2_win32 (2)\gamemodes\Selfmade.pwn(460) : error 035: argument type mismatch (argument 2)

  • Ich versteh nicht genau was du meinst.
    Vielleicht das:
    GetPlayerName(pID,oname,sizeof oname);?

    //edit: Es steht doch nicht immer der Name von mir da, sondern: Wenn (ID 0) SWATiii das eingibt, bekommt er die Nachrichten mit dem Namen SWATiii, wenn (ID 1) ich das eingebe, bekomme ich die Nachrichten ebenfalls mit SWATiii.

    2 Mal editiert, zuletzt von Rayx3 ()

  • tja, dann weist du pID gar keinen wert zu also ist die ID immer 0 (variablen werden bei der deklaration immer auf 0 gesetzt wenn kein wert zugewiesen wird).
    logscherweise wird dann immer der name angezeigt, der zur id 0 gehört.




    if(!strcmp(strget(cmdtext,0),"/scheine"))
    {
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /scheine [ID]"); return 1; }
    pID=strval(strget(cmdtext, 1));
    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    format(string,sizeof string,"Du hast %s deine Scheine gezeigt.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat dir seine Scheine gezeigt.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    if(Spielerinfo[pID][Autoschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist vorhanden!");}
    if(Spielerinfo[pID][Waffenschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist vorhanden!");}
    }

    Keine Scripting-Fragen per PM!

  • Okay, danke.
    Bei dem Befehl "/scheine" funktioniert das auch.
    Jedoch bei den Befehlen mit OCMD, bei denen ich das selbe Problem hatte, bekomme ich folgenden Error: D:\Downloads\samp03bsvr_R2_win32 (2)\gamemodes\Selfmade.pwn(913) : error 017: undefined symbol "cmdtext"
    pID=strval(strget(cmdtext, 1));
    Kann mir jemand sagen, wie ich das bei OCMD mache?

    Einmal editiert, zuletzt von Rayx3 ()

  • bei ocmd wäre sscanf sinnvoll das kannst du mit google suchen ;)


    das geht dann so


    ocmd:scheinezeigen(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR,"Benutzung: /scheinezeigen [ID]");
    new playerName[MAX_PLAYER_NAME],pidName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    GetPlayerName(pID,playername,MAX_PLAYER_NAME);
    new string[128];
    format(string,sizeof string,"Du hast %s deine Scheine gezeigt.",pidName);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat dir seine Scheine gezeigt.",playerName);
    SendClientMessage(pID,COLOR_WHITE,string);
    if(Spielerinfo[pID][Autoschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Autoschein ist vorhanden!");}
    if(Spielerinfo[pID][Waffenschein] == 0){SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist nicht vorhanden!");}else{SendClientMessage(pID,COLOR_WHITE,"Der Waffenschein ist vorhanden!");
    return 1;
    }


    //auf die Schnelle geschrieben , nicht getestet!


    edit: verbessert