Wieso wird der Text nicht voll angezeigt?

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,
    wieso wird der Text im Chat nicht voll angezeigt:


    COMMAND:d(playerid,params[])
    {
    if(IsPlayerInFrakt(playerid,1) || IsPlayerInFrakt(playerid,2) || IsPlayerInFrakt(playerid,3))
    {
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktionsmember"))
    {
    case 1:{fraktname= "LSPD-";}
    case 2:{fraktname= "Bundeswehr-";}
    case 3:{fraktname= "FBI-";}
    case 4:{fraktname= "Feuerwehrmann-";}
    }
    new text[500];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /d [nachricht]");
    format(text,sizeof(text),"*** %s%s %s: %s ,over! ***",fraktname,Fraktionsname(playerid),Spielername(playerid),text);
    SendClientMessageToFraktion(0xFF9600FF,text);
    }
    return 1;
    }


    Wenn ich schreibe /d hallo breadfish wie geht es dir`? alles klar und s
    da fehlt dann der rest xD
    MfG

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • ja du sollst den string also das was nach "new ...[500];" steht erhöhen! also aus 500 machst du einfach mal 550 oder so.. bis es richtig geht!

  • Warum lässt du den Frak. Namen 2x auslesen? :huh:


    :)


    stock Fraktionsname(playerid)
    {
    new fraktname[128];
    switch(GetPVarInt(playerid,"Rang"))
    {
    case 0:{fraktname= "";}
    case 1:{fraktname= "Rang 1";}
    case 2:{fraktname= "Rang 2";}
    case 3:{fraktname= "Rang 3";}
    case 4:{fraktname= "Rang 4";}
    case 5:{fraktname= "Co. Leader";}
    case 6:{fraktname= "Leader";}
    }
    return fraktname;
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • ja du sollst den string also das was nach "new ...[500];" steht erhöhen! also aus 500 machst du einfach mal 550 oder so.. bis es richtig geht!


    Ist das egal wenn das kommt beim Compilen:?


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 7280 bytes
    Code size: 343196 bytes
    Data size: 174588 bytes
    Stack/heap size: 16384 bytes; estimated max. usage=5305 cells (21220 bytes)
    Total requirements: 541448 bytes


    Ich habe es jetzt so:


    COMMAND:d(playerid,params[])
    {
    if(IsPlayerInFrakt(playerid,1) || IsPlayerInFrakt(playerid,2) || IsPlayerInFrakt(playerid,3))
    {
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktionsmember"))
    {
    case 1:{fraktname= "LSPD-";}
    case 2:{fraktname= "Bundeswehr-";}
    case 3:{fraktname= "FBI-";}
    case 4:{fraktname= "Feuerwehrmann-";}
    }
    new text[1000];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /d [nachricht]");
    format(text,sizeof(text),"*** %s%s %s: %s ,over! ***",fraktname,Fraktionsname(playerid),Spielername(playerid),text);
    SendClientMessageToFraktion(0xFF9600FF,text);
    }
    return 1;
    }
    #
    Immernoch das gleiche Problem.
    Man woran liegt das?
    MfG

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

    2 Mal editiert, zuletzt von Freestyyler ()

  • Gehts euch noch gut ?
    500 Zellen obwohl der SA-MP Chat nur 127 oder 128 unterstüzt ?
    Wird in der Funktion SendClientMessageToFraktion der Text vielleicht nochmal formatiert und dort ist der String vielleicht zu klein ?

    RFT

  • Wahrscheinlich erreichst du schon das Zeichenlimit in der Zeile.
    Musst den String splitten und ihn in der nächsten Zeile ausgeben.


    wie meinst du das? :)


    zb so:?


    COMMAND:o(playerid,params[])
    {
    new text[128];
    new endtext[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /o [nachricht]");
    format(text,sizeof(text),"(( %s %s : %s ))",Admintextname2(playerid),Spielername(playerid),text);
    format(endtext,sizeof(endtext),"%s",text);
    SendClientMessageToAll(FARBE_WEISS,endtext);
    return 1;
    }


    stock SendClientMessageToFraktion(color,message[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrakt(i,1) || IsPlayerInFrakt(i,2) || IsPlayerInFrakt(i,3))
    {
    SendClientMessage(i,color,message);
    }
    }
    }
    return 1;
    }


    Das Problem ist jetzt bei allen /o /d /f einfach überall das ist doch nicht normal -.-


    BsP.:


    Eingabe:

    Code
    /d 1234567891011121314151617181920212223242526272829


    Ausgabe:



    MFG

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

    2 Mal editiert, zuletzt von Freestyyler ()

  • Schreibe das mal so:


    COMMAND:o(playerid,params[])
    {
    new text[128], string[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /o [nachricht]");
    format(string,sizeof(string),"(( %s %s : %s ))",Admintextname2(playerid),Spielername(playerid),text);
    SendClientMessageToAll(FARBE_WEISS,string);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Ich verstehe das einfach nicht ;(
    Ich habe jetzt so wie von dir Kaliber aber keine Veränderung :D


    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)


  • Zähl mal die "i" s in der Eingabe und Vergleiche sie mit der ausgabe.
    Da fehlen "ein paar" stimmts? xD


    Schreib den Befehl mal bitte so:


    COMMAND:o(playerid,params[])
    {
    new text[128], string[256];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,FARBE_ROT,"Tippe: /o [nachricht]");
    format(string,sizeof(string),"(( %s %s : %s ))",Admintextname2(playerid),Spielername(playerid),text);
    SendClientMessageToAll(FARBE_WEISS,string);
    new sum = strlen(Admintextname2(playerid))+strlen(Spielername(playerid))+strlen(text)+2;
    format(string, sizeof string,"Text Länge: %d",sum);
    SendClientMessageToAll(FARBE_WEISS,string);
    return 1;
    }


    und zeig jetzt mal, vielleicht geht es jetzt ja... :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Text Länge: 75
    Mehr kommt nicht bei raus -.-


    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

    2 Mal editiert, zuletzt von Freestyyler () aus folgendem Grund: Foto angehängt

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen