Textdraw Strings ändern

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 einige Textdraws. Die Textdraws sind im Groben aber nur Ein Bild. Nämlich eine Tabelle. Mein Problem nun ist, dass ich sie nicht ändern kann.
    Ich habe schon ein Public dafür geschrieben, doch sobald ich alle Textdraws anzeigen will und davor das Textdraw Aktualisieren will, mit der besagten Funktion, geht es nicht.


    Hier die Funktion


    forward Endstand();
    public Endstand()
    {
    new String[512], String2[512], String3[512], String4[512], String5[512], String6[512], String7[512], String8[512];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String, sizeof(String), "%s~n~", Name);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String2, sizeof(String2), "%s~n~", Name);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    format(String3, sizeof(String3), "%d~n~", Kills[i]);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    format(String4, sizeof(String4), "%d~n~", Kills[i]);
    }

    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    format(String5, sizeof(String5), "%d~n~", Tode[i]);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    format(String6, sizeof(String6), "%d~n~", Tode[i]);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Float:ratio=Kills[i]/Tode[i];
    format(String7, sizeof(String7), "%f~n~", ratio);
    }
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Float:ratio=Kills[i]/Tode[i];
    format(String8, sizeof(String8), "%f~n~", ratio);
    }
    }
    new Clanname1[60], Clanname2[60];
    new gesamtk1[30], gesamtt1[30], gesamtr1[30];
    new gesamtk2[30], gesamtt2[30], gesamtr2[30];
    format(gesamtk1, sizeof (gesamtk1), "%d Kills", Totalkillst1);
    format(gesamtk2, sizeof (gesamtk2), "%d Kills", Totalkillst2);
    format(gesamtt1, sizeof (gesamtt1), "%d Tode", Totaltode1);
    format(gesamtt2, sizeof (gesamtt2), "%d Tode", Totaltode2);
    format(Clanname1, sizeof (Clanname1), "%s", TName1);
    format(Clanname2, sizeof (Clanname2), "%s", TName2);
    format(gesamtr1, sizeof (gesamtr1), "%d Runden", Roundst1);
    format(gesamtr2, sizeof (gesamtr2), "%d Runden", Roundst2);

    TextDrawSetString(Textdraw2, Clanname1);
    TextDrawSetString(Textdraw4, Clanname2);
    TextDrawSetString(Textdraw9, String3);
    TextDrawSetString(Textdraw10, String5);
    TextDrawSetString(Textdraw12, String7);
    TextDrawSetString(Textdraw13, String);
    TextDrawSetString(Textdraw15, gesamtk1);
    TextDrawSetString(Textdraw16, gesamtt1);
    TextDrawSetString(Textdraw17, gesamtr1);
    TextDrawSetString(Textdraw22, String4);
    TextDrawSetString(Textdraw23, String6);
    TextDrawSetString(Textdraw24, String2);
    TextDrawSetString(Textdraw25, String8);
    TextDrawSetString(Textdraw27, gesamtk2);
    TextDrawSetString(Textdraw28,gesamtt2);
    TextDrawSetString(Textdraw29, gesamtr2);
    return 1;
    }


    Hier ein beispiels Befehl:


    if (strcmp("/show", cmdtext, true, 10) == 0)
    {
    Endstand();
    ShowEndscore(playerid);
    return 1;
    }


    Mit Endstand wird mir gar nichts angezeigt, ohne wird mir das Textdraw, dass in OnGamemode init ist. Also mit den Unveränderten Werten...
    Wo ist mein Fehler?


    lg

    "when you got nothing to lose, then baby you got it all" - OPERATOR

  • Versuch es mal so:
    forward Endstand();
    public Endstand()
    {
    new String[512], String2[512], String3[512], String4[512], String5[512], String6[512], String7[512], String8[512];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String, sizeof(String), "%s~n~", Name);
    format(String3, sizeof(String3), "%d~n~", Kills[i]);
    format(String5, sizeof(String5), "%d~n~", Tode[i]);
    new Float:ratio;
    if(Tode[i] != 0) ratio = float(Kills[i])/float(Tode[i]);
    else ratio = float(Kills[i]);
    format(String7, sizeof(String7), "%f~n~", ratio);
    TextDrawShowForPlayer(i, Textdraw2);
    TextDrawShowForPlayer(i, Textdraw4);
    TextDrawShowForPlayer(i, Textdraw9);
    TextDrawShowForPlayer(i, Textdraw10);
    TextDrawShowForPlayer(i, Textdraw12);
    TextDrawShowForPlayer(i, Textdraw13);
    TextDrawShowForPlayer(i, Textdraw15);
    TextDrawShowForPlayer(i, Textdraw16);
    TextDrawShowForPlayer(i, Textdraw17);
    TextDrawShowForPlayer(i, Textdraw22);
    TextDrawShowForPlayer(i, Textdraw23);
    TextDrawShowForPlayer(i, Textdraw24);
    TextDrawShowForPlayer(i, Textdraw25);
    TextDrawShowForPlayer(i, Textdraw27);
    TextDrawShowForPlayer(i, Textdraw28);
    TextDrawShowForPlayer(i, Textdraw29);
    }
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String2, sizeof(String2), "%s~n~", Name);
    format(String4, sizeof(String4), "%d~n~", Kills[i]);
    format(String6, sizeof(String6), "%d~n~", Tode[i]);
    new Float:ratio;
    if(Tode[i] != 0) ratio = float(Kills[i])/float(Tode[i]);
    else ratio = float(Kills[i]);
    format(String8, sizeof(String8), "%f~n~", ratio);
    TextDrawShowForPlayer(i, Textdraw2);
    TextDrawShowForPlayer(i, Textdraw4);
    TextDrawShowForPlayer(i, Textdraw9);
    TextDrawShowForPlayer(i, Textdraw10);
    TextDrawShowForPlayer(i, Textdraw12);
    TextDrawShowForPlayer(i, Textdraw13);
    TextDrawShowForPlayer(i, Textdraw15);
    TextDrawShowForPlayer(i, Textdraw16);
    TextDrawShowForPlayer(i, Textdraw17);
    TextDrawShowForPlayer(i, Textdraw22);
    TextDrawShowForPlayer(i, Textdraw23);
    TextDrawShowForPlayer(i, Textdraw24);
    TextDrawShowForPlayer(i, Textdraw25);
    TextDrawShowForPlayer(i, Textdraw27);
    TextDrawShowForPlayer(i, Textdraw28);
    TextDrawShowForPlayer(i, Textdraw29);
    }
    }
    new Clanname1[60], Clanname2[60];
    new gesamtk1[30], gesamtt1[30], gesamtr1[30];
    new gesamtk2[30], gesamtt2[30], gesamtr2[30];
    format(gesamtk1, sizeof (gesamtk1), "%d Kills", Totalkillst1);
    format(gesamtk2, sizeof (gesamtk2), "%d Kills", Totalkillst2);
    format(gesamtt1, sizeof (gesamtt1), "%d Tode", Totaltode1);
    format(gesamtt2, sizeof (gesamtt2), "%d Tode", Totaltode2);
    format(Clanname1, sizeof (Clanname1), "%s", TName1);
    format(Clanname2, sizeof (Clanname2), "%s", TName2);
    format(gesamtr1, sizeof (gesamtr1), "%d Runden", Roundst1);
    format(gesamtr2, sizeof (gesamtr2), "%d Runden", Roundst2);

    TextDrawSetString(Textdraw2, Clanname1);
    TextDrawSetString(Textdraw4, Clanname2);
    TextDrawSetString(Textdraw9, String3);
    TextDrawSetString(Textdraw10, String5);
    TextDrawSetString(Textdraw12, String7);
    TextDrawSetString(Textdraw13, String);
    TextDrawSetString(Textdraw15, gesamtk1);
    TextDrawSetString(Textdraw16, gesamtt1);
    TextDrawSetString(Textdraw17, gesamtr1);
    TextDrawSetString(Textdraw22, String4);
    TextDrawSetString(Textdraw23, String6);
    TextDrawSetString(Textdraw24, String2);
    TextDrawSetString(Textdraw25, String8);
    TextDrawSetString(Textdraw27, gesamtk2);
    TextDrawSetString(Textdraw28,gesamtt2);
    TextDrawSetString(Textdraw29, gesamtr2);
    return 1;
    }


    Garantieren kann ich es dir nicht, weil ich deine Variablen zum Teil nicht kenne.

  • Es Funktioniert nach wie vor nicht. Aber das kann doch nicht an den Variabeln liegen, oder? o.0


    @*YaBroo*
    Ich weiß, so wie ich es gemacht habe ist es zwar Resourcendfressend aber es müsste ja Funktionieren.
    Und die Textdraw's zeige ich in einer weiteren Funktion an. Siehst du ja bei "/show" da steht ja drin,
    ShowEndscore(playerid);
    Danke Trotzdem :)


    lg ^^

    "when you got nothing to lose, then baby you got it all" - OPERATOR

  • Hm, dann versuch es mal so:
    forward Endstand();
    public Endstand()
    {
    new String[512], String2[512], String3[512], String4[512], String5[512], String6[512], String7[512], String8[512];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerSkin(i) == T1Skin1 || GetPlayerSkin(i) == T1Skin2 || GetPlayerSkin(i) == T1Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String, sizeof(String), "%s%s~n~",String, Name);
    format(String3, sizeof(String3), "%s%d~n~",String3, Kills[i]);
    format(String5, sizeof(String5), "%s%d~n~",String5, Tode[i]);
    new Float:ratio;
    if(Tode[i] != 0) ratio = float(Kills[i])/float(Tode[i]);
    else ratio = float(Kills[i]);
    format(String7, sizeof(String7), "%s%f~n~",String7, ratio);
    }
    if(GetPlayerSkin(i) == T2Skin1 || GetPlayerSkin(i) == T2Skin2 || GetPlayerSkin(i) == T2Skin3)
    {
    new Name[24];
    GetPlayerName(i, Name, 24);
    format(String2, sizeof(String2), "%s%s~n~",String2, Name);
    format(String4, sizeof(String4), "%s%d~n~",String4, Kills[i]);
    format(String6, sizeof(String6), "%s%d~n~",String6, Tode[i]);
    new Float:ratio;
    if(Tode[i] != 0) ratio = float(Kills[i])/float(Tode[i]);
    else ratio = float(Kills[i]);
    format(String8, sizeof(String8), "%s%f~n~",String8, ratio);
    }
    }
    new Clanname1[60], Clanname2[60];
    new gesamtk1[30], gesamtt1[30], gesamtr1[30];
    new gesamtk2[30], gesamtt2[30], gesamtr2[30];
    format(gesamtk1, sizeof (gesamtk1), "%d Kills", Totalkillst1);
    format(gesamtk2, sizeof (gesamtk2), "%d Kills", Totalkillst2);
    format(gesamtt1, sizeof (gesamtt1), "%d Tode", Totaltode1);
    format(gesamtt2, sizeof (gesamtt2), "%d Tode", Totaltode2);
    format(Clanname1, sizeof (Clanname1), "%s", TName1);
    format(Clanname2, sizeof (Clanname2), "%s", TName2);
    format(gesamtr1, sizeof (gesamtr1), "%d Runden", Roundst1);
    format(gesamtr2, sizeof (gesamtr2), "%d Runden", Roundst2);

    TextDrawSetString(Textdraw2, Clanname1);
    TextDrawSetString(Textdraw4, Clanname2);
    TextDrawSetString(Textdraw9, String3);
    TextDrawSetString(Textdraw10, String5);
    TextDrawSetString(Textdraw12, String7);
    TextDrawSetString(Textdraw13, String);
    TextDrawSetString(Textdraw15, gesamtk1);
    TextDrawSetString(Textdraw16, gesamtt1);
    TextDrawSetString(Textdraw17, gesamtr1);
    TextDrawSetString(Textdraw22, String4);
    TextDrawSetString(Textdraw23, String6);
    TextDrawSetString(Textdraw24, String2);
    TextDrawSetString(Textdraw25, String8);
    TextDrawSetString(Textdraw27, gesamtk2);
    TextDrawSetString(Textdraw28,gesamtt2);
    TextDrawSetString(Textdraw29, gesamtr2);
    return 1;
    }



    Falls es nicht geht, lass dir die Werte mal ausgeben:
    print(Clanname1);
    print(Clanname2);
    print(String3);
    print(String5);
    print(String7);
    print(String);
    print(gesamtk1);
    print(gesamtt1);
    print(gesamtr1);
    print(String4);
    print(String6);
    print(String2);
    print(String8);
    print(gesamtk2);
    print(gesamtt2);
    print(gesamtr2);

  • Das Problem ist ja, dass ich erst gar nicht auf die Funktion zugreifen kann. Habe es mit einem Befehl versucht, (/show) aber wenn ich das damit versuche
    steht da einfach nur Unknown Command... Ich verstehe nicht wieso :/

    "when you got nothing to lose, then baby you got it all" - OPERATOR

  • Ja

    "when you got nothing to lose, then baby you got it all" - OPERATOR

  • Dann ist das der Grund. Du hast mehr Variablen in Gebrauch als dem Compiler lieb ist.


    Füge unter die Includes das ein:
    #pragma dynamic 100000


    Falls die Meldung nicht weg geht, erhöhe die Zahl etwas.


    Dann sollte es klappen.



    EDIT:
    XHSD: Freut mich, dass ich helfen konnte. :)

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()