anzeige spinnt -.- (HELP PLS)

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
  • Nabend ..


    ich bin höhst am verzweifeln


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    new dtext[25];
    if(SpielerInfo[clickedplayerid][Adminlevel] == 0) { dtext = "Kein Admin"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 1) { dtext = "Probe Supporter"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 2) { dtext = "Fester Supporter"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 3) { dtext = "Probe Admin"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 4) { dtext = "Fester Admin"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 5) { dtext = "Mannager"; }
    else if(SpielerInfo[clickedplayerid][Adminlevel] == 2000) { dtext = "Projekt Leiter"; }
    new ClickText[50],ClickText2[50],ClickText3[50],bla[50];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(clickedplayerid,Sname,sizeof(Sname));
    format(bla, sizeof(bla), "====================================");
    format(ClickText, sizeof(ClickText), "Name: %s", Sname[clickedplayerid]);
    format(ClickText2, sizeof(ClickText2), "Alter: %d Jahr(e)",GetPlayerScore(clickedplayerid));
    format(ClickText3, sizeof(ClickText3), "Adminrang: %s",dtext);
    SendClientMessage(playerid, Grün, bla);
    SendClientMessage(playerid, Grün, ClickText);
    SendClientMessage(playerid, Grün, ClickText2);
    SendClientMessage(playerid, Grün, ClickText3);
    SendClientMessage(playerid, Grün, bla);
    return 1;
    }


    getestet bei einem spieler namens "Phillip1994"
    Als name wird mir beim klicken dann "hillip1994" angezeigt.. (erster buchstabe wird nicht angezeigt)


    :thumbdown:


    Woran liegt das?

  • Der Fehler liegt beim formatieren der Nachricht.


    Schau dir die Zeile nochmal genau an:
    format(ClickText, sizeof(ClickText), "Name: %s", Sname[clickedplayerid]);


    Wie ich sehe bist du also die ID 1 beim Testen gewesen.
    Bei der ID 2 wären die ersten beiden Buchstaben nicht angezeigt worden.
    Bei ID 3 die ersten 3 nicht; usw...
    Bei ID 0 wäre der Fehler wohl nicht aufgetreten.


    Sname[clickedplayerid] sieht, wenn clickedplayerid dem Wert 1 entspricht, nämlich so aus: Sname[1].
    Das wiederum würde bedeuten, dass er den string 'Sname' ab der zweiten (da man in PAWN bei 0 anfängt zu zählen) Stelle anzeigt.

  • Ich hoffe, du kommst selbst auf die Antwort, wenn du diese beiden Zeilen miteinander vergleichst (darauf achten, wie du die Platzhalter durch die Zeichenketten ersetzt):
    format(ClickText, sizeof(ClickText), "Name: %s", Sname[clickedplayerid]);
    format(ClickText3, sizeof(ClickText3), "Adminrang: %s", dtext);


    Lösung
    format(ClickText, sizeof(ClickText), "Name: %s", Sname);

  • Du versuchst dem Compiler einen String (Sname[MAX_PLAYER_NAME), als Integer zu verkaufen (oder als sonstwas), indem du ihm einen Parameter gibst, den er garnicht kennt.
    Versuchs mal so:

    ...
    new Sname[24];//Zur verdeutlichung, dass es sich hier um einen ganz normalen String handelt, setzen wir einfach mal eine Zahl ein =)
    GetPlayerName(clickedplayerid,Sname,sizeof(Sname));//Name auslesen
    format(bla, sizeof(bla), "====================================");//Zwischenmessage
    format(ClickText, sizeof(ClickText), "Name: %s", Sname);//Es ist nur ein ganz normaler String, behandele ihn auch wie einen solchen.. (String formattieren)
    ...



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )