Textdraw SetString Bug

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 Leute.
    Und schonwieder habe ich ein Problem bzw. einen Fehler.


    Wenn ich mit mehreren Kumpels auf meinem Server am spielen bin, geht mein Textdraw alle IDs durch die gerade on sind.
    Also 0, 1, 2, 3 etc.


    Hier mal ein Video und das was im Script ist.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    public ShowStats(playerid)
    {
    TextDrawShowForPlayer(playerid, Text:Stats0);
    TextDrawShowForPlayer(playerid, Text:Stats1);
    TextDrawShowForPlayer(playerid, Text:Stats2);
    TextDrawShowForPlayer(playerid, Text:Stats3);
    TextDrawShowForPlayer(playerid, Text:Stats4);
    TextDrawShowForPlayer(playerid, Text:Stats5);
    TextDrawShowForPlayer(playerid, Text:Stats6);
    TextDrawShowForPlayer(playerid, Text:Stats7);
    TextDrawShowForPlayer(playerid, Text:Stats8);
    TextDrawShowForPlayer(playerid, Text:Stats9);
    TextDrawShowForPlayer(playerid, Text:Stats10);
    TextDrawShowForPlayer(playerid, Text:Stats11);
    TextDrawShowForPlayer(playerid, Text:Stats12);
    TextDrawShowForPlayer(playerid, Text:Stats13);
    TextDrawShowForPlayer(playerid, Text:Stats14);
    TextDrawShowForPlayer(playerid, Text:Stats15);
    TextDrawShowForPlayer(playerid, Text:Stats16);
    TextDrawShowForPlayer(playerid, Text:Stats17);
    TextDrawShowForPlayer(playerid, Text:Stats18);
    TextDrawShowForPlayer(playerid, Text:Stats19);
    TextDrawShowForPlayer(playerid, Text:Stats20);
    TextDrawShowForPlayer(playerid, Text:Stats21);
    TextDrawShowForPlayer(playerid, Text:Stats22);
    return 1;
    }


    public UpdateStats(playerid)
    {
    new name[24], level[10], respekt1[10], respekt2[10], zahltag[10], wanteds[10], status[24], pstatus[24], konto[10], id[10], sex[24], stext[24];
    format(name, sizeof(name), "%s", SpielerName(playerid));
    TextDrawSetString(Stats0, name);
    format(level, sizeof(level), "%d", Spieler[playerid][pLevel]);
    TextDrawSetString(Stats4, level);
    format(respekt1, sizeof(respekt1), "%d", Spieler[playerid][pExp]);
    TextDrawSetString(Stats6, respekt1);
    format(respekt2, sizeof(respekt2), "%d", Spieler[playerid][pMaxExp]);
    TextDrawSetString(Stats8, respekt2);
    format(zahltag, sizeof(zahltag), "%d", Spieler[playerid][pPayday]);
    TextDrawSetString(Stats10, zahltag);
    format(wanteds, sizeof(wanteds), "%d", Spieler[playerid][pWanted]);
    TextDrawSetString(Stats14, wanteds);
    if(Spieler[playerid][pPremium] == 1){ status ="Premium-User"; }
    else if(Spieler[playerid][pPremium] == 0){ status ="Normaler-User"; }
    format(pstatus, sizeof(pstatus), "%s", status);
    TextDrawSetString(Stats16, pstatus);
    format(konto, sizeof(konto), "%d", Spieler[playerid][pBank]);
    TextDrawSetString(Stats18, konto);
    format(id, sizeof(id), "%d", playerid);
    TextDrawSetString(Stats20, id);
    if(Spieler[playerid][pSex] == 1){ stext ="Weiblich"; }
    else if(Spieler[playerid][pSex] == 2){ stext ="Maennlich"; }
    format(sex, sizeof(sex), "%s", stext);
    TextDrawSetString(Stats22, sex);
    return 1;
    }


    Beim Login / Register Teil:

    ShowStats(playerid);
    UpdateStats(playerid);
    SetTimerEx("UpdateStats", 10000, 1, "%i", playerid);



    //Stat-Fenster
    new Text:Stats0;
    new Text:Stats1;
    new Text:Stats2;
    new Text:Stats3;
    new Text:Stats4;
    new Text:Stats5;
    new Text:Stats6;
    new Text:Stats7;
    new Text:Stats8;
    new Text:Stats9;
    new Text:Stats10;
    new Text:Stats11;
    new Text:Stats12;
    new Text:Stats13;
    new Text:Stats14;
    new Text:Stats15;
    new Text:Stats16;
    new Text:Stats17;
    new Text:Stats18;
    new Text:Stats19;
    new Text:Stats20;
    new Text:Stats21;
    new Text:Stats22;



    //Stats
    Stats0 = TextDrawCreate(491.000000, 115.000000, "aaaaaaaaaaaaaaaaaaaaaaaa");
    TextDrawBackgroundColor(Stats0, 255);
    TextDrawFont(Stats0, 1);
    TextDrawLetterSize(Stats0, 0.300000, 1.000000);
    TextDrawColor(Stats0, -1);
    TextDrawSetOutline(Stats0, 0);
    TextDrawSetProportional(Stats0, 1);
    TextDrawSetShadow(Stats0, 1);


    Stats1 = TextDrawCreate(491.000000, 109.000000, "_");
    TextDrawBackgroundColor(Stats1, 255);
    TextDrawFont(Stats1, 1);
    TextDrawLetterSize(Stats1, 0.500000, 19.000000);
    TextDrawColor(Stats1, -1);
    TextDrawSetOutline(Stats1, 0);
    TextDrawSetProportional(Stats1, 1);
    TextDrawSetShadow(Stats1, 1);
    TextDrawUseBox(Stats1, 1);
    TextDrawBoxColor(Stats1, 120);
    TextDrawTextSize(Stats1, 629.000000, 0.000000);


    Stats2 = TextDrawCreate(529.000000, 108.000000, "Statistik von");
    TextDrawBackgroundColor(Stats2, 255);
    TextDrawFont(Stats2, 1);
    TextDrawLetterSize(Stats2, 0.300000, 1.000000);
    TextDrawColor(Stats2, -1);
    TextDrawSetOutline(Stats2, 0);
    TextDrawSetProportional(Stats2, 1);
    TextDrawSetShadow(Stats2, 1);


    Stats3 = TextDrawCreate(490.000000, 140.000000, "Level:");
    TextDrawBackgroundColor(Stats3, 255);
    TextDrawFont(Stats3, 1);
    TextDrawLetterSize(Stats3, 0.300000, 1.000000);
    TextDrawColor(Stats3, -194499073);
    TextDrawSetOutline(Stats3, 0);
    TextDrawSetProportional(Stats3, 1);
    TextDrawSetShadow(Stats3, 1);


    Stats4 = TextDrawCreate(520.000000, 140.000000, "%d");
    TextDrawBackgroundColor(Stats4, 255);
    TextDrawFont(Stats4, 1);
    TextDrawLetterSize(Stats4, 0.300000, 1.000000);
    TextDrawColor(Stats4, -1);
    TextDrawSetOutline(Stats4, 0);
    TextDrawSetProportional(Stats4, 1);
    TextDrawSetShadow(Stats4, 1);


    Stats5 = TextDrawCreate(490.000000, 150.000000, "Respekt:");
    TextDrawBackgroundColor(Stats5, 255);
    TextDrawFont(Stats5, 1);
    TextDrawLetterSize(Stats5, 0.200000, 1.000000);
    TextDrawColor(Stats5, -194499073);
    TextDrawSetOutline(Stats5, 0);
    TextDrawSetProportional(Stats5, 1);
    TextDrawSetShadow(Stats5, 1);


    Stats6 = TextDrawCreate(520.000000, 150.000000, "%d");
    TextDrawBackgroundColor(Stats6, 255);
    TextDrawFont(Stats6, 1);
    TextDrawLetterSize(Stats6, 0.300000, 1.000000);
    TextDrawColor(Stats6, -1);
    TextDrawSetOutline(Stats6, 0);
    TextDrawSetProportional(Stats6, 1);
    TextDrawSetShadow(Stats6, 1);


    Stats7 = TextDrawCreate(542.000000, 150.000000, "/");
    TextDrawBackgroundColor(Stats7, 255);
    TextDrawFont(Stats7, 1);
    TextDrawLetterSize(Stats7, 0.300000, 1.000000);
    TextDrawColor(Stats7, -194499073);
    TextDrawSetOutline(Stats7, 0);
    TextDrawSetProportional(Stats7, 1);
    TextDrawSetShadow(Stats7, 1);


    Stats8 = TextDrawCreate(552.000000, 150.000000, "%d");
    TextDrawBackgroundColor(Stats8, 255);
    TextDrawFont(Stats8, 1);
    TextDrawLetterSize(Stats8, 0.330000, 1.000000);
    TextDrawColor(Stats8, -1);
    TextDrawSetOutline(Stats8, 0);
    TextDrawSetProportional(Stats8, 1);
    TextDrawSetShadow(Stats8, 1);


    Stats9 = TextDrawCreate(490.000000, 160.000000, "Zahltag:");
    TextDrawBackgroundColor(Stats9, 255);
    TextDrawFont(Stats9, 1);
    TextDrawLetterSize(Stats9, 0.210000, 1.000000);
    TextDrawColor(Stats9, -194499073);
    TextDrawSetOutline(Stats9, 0);
    TextDrawSetProportional(Stats9, 1);
    TextDrawSetShadow(Stats9, 1);


    Stats10 = TextDrawCreate(520.000000, 160.000000, "%d");
    TextDrawBackgroundColor(Stats10, 255);
    TextDrawFont(Stats10, 1);
    TextDrawLetterSize(Stats10, 0.300000, 1.000000);
    TextDrawColor(Stats10, -1);
    TextDrawSetOutline(Stats10, 0);
    TextDrawSetProportional(Stats10, 1);
    TextDrawSetShadow(Stats10, 1);


    Stats11 = TextDrawCreate(541.000000, 159.000000, "/");
    TextDrawBackgroundColor(Stats11, 255);
    TextDrawFont(Stats11, 1);
    TextDrawLetterSize(Stats11, 0.300000, 1.000000);
    TextDrawColor(Stats11, -194499073);
    TextDrawSetOutline(Stats11, 0);
    TextDrawSetProportional(Stats11, 1);
    TextDrawSetShadow(Stats11, 1);


    Stats12 = TextDrawCreate(551.000000, 160.000000, "60");
    TextDrawBackgroundColor(Stats12, 255);
    TextDrawFont(Stats12, 1);
    TextDrawLetterSize(Stats12, 0.359999, 1.000000);
    TextDrawColor(Stats12, -1);
    TextDrawSetOutline(Stats12, 0);
    TextDrawSetProportional(Stats12, 1);
    TextDrawSetShadow(Stats12, 1);


    Stats13 = TextDrawCreate(492.000000, 258.000000, "]");
    TextDrawBackgroundColor(Stats13, 255);
    TextDrawFont(Stats13, 0);
    TextDrawLetterSize(Stats13, 0.649999, 2.400000);
    TextDrawColor(Stats13, -829292289);
    TextDrawSetOutline(Stats13, 1);
    TextDrawSetProportional(Stats13, 1);


    Stats14 = TextDrawCreate(521.000000, 262.000000, "%d");
    TextDrawBackgroundColor(Stats14, 255);
    TextDrawFont(Stats14, 3);
    TextDrawLetterSize(Stats14, 0.469999, 1.500000);
    TextDrawColor(Stats14, -1);
    TextDrawSetOutline(Stats14, 0);
    TextDrawSetProportional(Stats14, 1);
    TextDrawSetShadow(Stats14, 1);


    Stats15 = TextDrawCreate(490.000000, 170.000000, "Status:");
    TextDrawBackgroundColor(Stats15, 255);
    TextDrawFont(Stats15, 1);
    TextDrawLetterSize(Stats15, 0.250000, 1.000000);
    TextDrawColor(Stats15, -194499073);
    TextDrawSetOutline(Stats15, 0);
    TextDrawSetProportional(Stats15, 1);
    TextDrawSetShadow(Stats15, 1);


    Stats16 = TextDrawCreate(520.000000, 170.000000, "%s");
    TextDrawBackgroundColor(Stats16, 255);
    TextDrawFont(Stats16, 1);
    TextDrawLetterSize(Stats16, 0.290000, 1.000000);
    TextDrawColor(Stats16, -1);
    TextDrawSetOutline(Stats16, 0);
    TextDrawSetProportional(Stats16, 1);
    TextDrawSetShadow(Stats16, 1);


    Stats17 = TextDrawCreate(490.000000, 180.000000, "Konto:");
    TextDrawBackgroundColor(Stats17, 255);
    TextDrawFont(Stats17, 1);
    TextDrawLetterSize(Stats17, 0.260000, 1.000000);
    TextDrawColor(Stats17, -194499073);
    TextDrawSetOutline(Stats17, 0);
    TextDrawSetProportional(Stats17, 1);
    TextDrawSetShadow(Stats17, 1);


    Stats18 = TextDrawCreate(520.000000, 180.000000, "%d");
    TextDrawBackgroundColor(Stats18, 255);
    TextDrawFont(Stats18, 1);
    TextDrawLetterSize(Stats18, 0.310000, 1.000000);
    TextDrawColor(Stats18, -1);
    TextDrawSetOutline(Stats18, 0);
    TextDrawSetProportional(Stats18, 1);
    TextDrawSetShadow(Stats18, 1);


    Stats19 = TextDrawCreate(545.000000, 124.000000, "ID:");
    TextDrawBackgroundColor(Stats19, 255);
    TextDrawFont(Stats19, 1);
    TextDrawLetterSize(Stats19, 0.300000, 1.000000);
    TextDrawColor(Stats19, -1);
    TextDrawSetOutline(Stats19, 0);
    TextDrawSetProportional(Stats19, 1);
    TextDrawSetShadow(Stats19, 1);


    Stats20 = TextDrawCreate(560.000000, 124.000000, "%d");
    TextDrawBackgroundColor(Stats20, 255);
    TextDrawFont(Stats20, 1);
    TextDrawLetterSize(Stats20, 0.300000, 1.000000);
    TextDrawColor(Stats20, -1);
    TextDrawSetOutline(Stats20, 0);
    TextDrawSetProportional(Stats20, 1);
    TextDrawSetShadow(Stats20, 1);


    Stats21 = TextDrawCreate(490.000000, 190.000000, "Geschlecht:");
    TextDrawBackgroundColor(Stats21, 255);
    TextDrawFont(Stats21, 1);
    TextDrawLetterSize(Stats21, 0.159999, 1.000000);
    TextDrawColor(Stats21, -194499073);
    TextDrawSetOutline(Stats21, 0);
    TextDrawSetProportional(Stats21, 1);
    TextDrawSetShadow(Stats21, 1);


    Stats22 = TextDrawCreate(520.000000, 190.000000, "%s");
    TextDrawBackgroundColor(Stats22, 255);
    TextDrawFont(Stats22, 1);
    TextDrawLetterSize(Stats22, 0.329999, 1.000000);
    TextDrawColor(Stats22, -1);
    TextDrawSetOutline(Stats22, 0);
    TextDrawSetProportional(Stats22, 1);
    TextDrawSetShadow(Stats22, 1);


    Ich hoffe ihr könnt mir und meinen Kumpels helfen. :)
    Vielen Dank! 8)

  • Du musst auch für jeden Spieler eigenen Textdraws erstellen,wenn jeder dort einen Anderen Text lesen soll.


    new Text:Stats0;
    new Text:Stats1;
    new Text:Stats2;
    new Text:Stats3;
    new Text:Stats4;
    new Text:Stats5;
    new Text:Stats6;
    new Text:Stats7;
    new Text:Stats8;
    new Text:Stats9;
    new Text:Stats10;
    new Text:Stats11;
    new Text:Stats12;
    new Text:Stats13;
    new Text:Stats14;
    new Text:Stats15;
    new Text:Stats16;
    new Text:Stats17;
    new Text:Stats18;
    new Text:Stats19;
    new Text:Stats20;
    new Text:Stats21;
    new Text:Stats22;
    Müssten alle für MAX_PLAYER sein. Jedenfalls der / die Textdraws, die einen individuellen Text anzeigen sollen.

  • Bei OnGameModeInit das zu machen ist bescheuert. Haust dir direkt den Speicher voll ohne das es eventuell je genutzt wird.
    Erstell die Textdraws bei OnPlayerConnect für den Spieler und zerstöre die Textdraws bei OnPlayerDisconnect wieder.


    public OnPlayerConnect(playerid)
    {
    Stats1[playerid] = TextDrawCreate(...);
    Stats2[playerid] = TextDrawCreate(...);
    usw.
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawDestroy(Stats1[playerid]);
    TextDrawDestroy(Stats2[playerid]);
    usw
    return 1;
    }

  • Wenn ich jetzt oben


    new Text:Stats0[MAX_PLAYERS];
    .


    und dann bei OnPlayerConnect


    Stats0[playerid] = ..
    mache dann kommen Fehler auf.



    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(260) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(261) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(262) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(263) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(264) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(265) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(266) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(1655) : error 035: argument type mismatch (argument 2)
    C:\Dokumente und Einstellungen\Mirko\Desktop\SAMP\German Reallife Selfmade 0.1 by WiZarD . benutzername\gamemodes\grl.pwn(1687) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.



    //Edit


    Hab schon alles versucht.


    Überall fornew bla eingesetzt,
    maxplayers versucht, nix geht.


    Kann mir jemand helfen? :S

    Einmal editiert, zuletzt von Ap0llinaris ()

  • Was meinst du? :)


    //Edit



    public ShowStats(playerid)
    {
    TextDrawShowForPlayer(playerid, Text:Stats0);
    TextDrawShowForPlayer(playerid, Text:Stats1);
    TextDrawShowForPlayer(playerid, Text:Stats2);
    TextDrawShowForPlayer(playerid, Text:Stats3);
    TextDrawShowForPlayer(playerid, Text:Stats4);
    TextDrawShowForPlayer(playerid, Text:Stats5);
    TextDrawShowForPlayer(playerid, Text:Stats6);
    TextDrawShowForPlayer(playerid, Text:Stats7);
    TextDrawShowForPlayer(playerid, Text:Stats8);
    TextDrawShowForPlayer(playerid, Text:Stats9);
    TextDrawShowForPlayer(playerid, Text:Stats10);
    TextDrawShowForPlayer(playerid, Text:Stats11);
    TextDrawShowForPlayer(playerid, Text:Stats12);
    TextDrawShowForPlayer(playerid, Text:Stats13);
    TextDrawShowForPlayer(playerid, Text:Stats14);
    TextDrawShowForPlayer(playerid, Text:Stats15);
    TextDrawShowForPlayer(playerid, Text:Stats16);
    TextDrawShowForPlayer(playerid, Text:Stats17);
    TextDrawShowForPlayer(playerid, Text:Stats18);
    TextDrawShowForPlayer(playerid, Text:Stats19);
    TextDrawShowForPlayer(playerid, Text:Stats20);
    TextDrawShowForPlayer(playerid, Text:Stats21);
    TextDrawShowForPlayer(playerid, Text:Stats22);
    return 1;
    }
    //Login / register


    ShowStats(playerid);


  • new Text:Stats0[MAX_PLAYERS];


    TextDrawShowForPlayer(playerid, Text:Stats0[playerid]);


    Ergibt:

  • was kommt denn wenn du oben
    new Text:Stats0[MAX_PLAYERS];
    und bei ShowStats(playerid)
    TextDrawShowForPlayer(playerid, Stats0[playerid]);
    hast?

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski