1 Warning und %s Problem..

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
  • Hey.
    Ich arbeite gerade an einem Selfmade, um mich weiter zu entwickeln in sachen Pawn.
    Jedoch habe ich einen Warning erhalten...


    C:\Dokumente und Einstellungen\Marco\Desktop\Pawno\gamemodes\MySelfmade.pwn(60) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Unter dieser Zeile:
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Männlich","Weiblich");


    Ebenso funktioniert %s nicht.
    Wenn ich %s irgendwo ins Script schreibe, steht auch nur %s, und nicht der Name, der connected ist.


    Ich hoffe auf hilfe. ;)


    Mit Freundlichen Grüßen,
    Tony_Jaa! :)

  • ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Wähle dein Geschlecht","Männlich","Weiblich");


    für das %s Problem


    new string[128];
    format(string,sizeof(string), "Dein Name ist %s", VARIABLE DIE DEN NAMENAUSGIBT);
    SendClientMessage(playerid, -1, string);

  • Du musst %s in einem String verwenden, du kannst bei SendClientMessage ja auch nicht einfach so machen:
    SendClientMessage(playerid,Farbe,"Ich bin %s!",SpielerName(playerid));


    Mache:

    new string[64];
    format(string,64,"Text mit %s",Name usw);
    Dann Showste ihm den Dialog nur anstatt deine Message nach der Ueberschrift schreibe string hin


  • Du musst das nicht Wiederholen schau in meinen Text.


    Einfacher zu erklären.


    für eine Ausgabe von einem Integer (%d) string (%s) float(%f) ... muss man ein format machen das so geht wie es schon zweimal beschrieben wurde


    format([STRING],[STRING-SIZE],[TEXT],[FUNKTIONEN]);

  • Du deklariert eine Variable des Typs String


    new playername[MAX_PLAYER_NAME];


    Diese initialisiert du, indem du den Spielernamen da reinschreibst.


    GetPlayerName(playerid,playername,sizeof(playername));


    Jetzt kannst du diesen String z.B. mit SendClientMessage versenden.


    Du kannst aber auch diesen String mit dem Spielernamen in einen anderen String integrieren. Dafür nutzt du den native format



    new string[64];
    format(string,sizeof(string),"Dein Name ist %s",playername);


    Das %s fungiert hier als Platzhalter für eine Variable des Typs Zeichenkette (String). Die Platzhalter werden dann durch die Parameter, die hinten angegeben sind ersetzt. Und zwar in der Reihenfolge wie sie dort stehen.


    Möchtest du jetzt z.B. noch eine Zahl davor schreiben, lautete der Code folgendermaßen:


    format(string,sizeof(string),"Die Zahl %d und dein Name %s",24,playername);


    %d ist hier der Platzhalter für einen Integer, also eine Ganzzahl.


    edit:


    In der Variable (Zeichnkette) "string" steht jetzt dann der Text und dein Name (oder auch ne ZahL, je nachdem was du damit machst). Diesen kannst du natürlich auch in einem Dialog verwenden.


    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new string[128];
    format(string,sizeof(string),"Hallo %s. Bitte wähle ein Geschlecht",pName);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,string,"Männlich\nWeiblich","Button 1","Button 2");


    Die Überschrift des Dialog wäre damit der zuvor formatierte Text:


    Zitat

    Hallo 'hier der Spielername'. Bitte wähle dein Geschlecht