Textdraw wird nicht richtig geupdatet

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
  • Huhu,


    hab mal wieder ein kleines Problem. Ich habe mir ein Bedürfnissystem zusammen "geschraubt", es funktioniert auch alles soweit ganz gut, nur, dass die Textdraws nicht richtig geupdatet werden, sprich er zeigt den richtigen Wert nicht an.
    Es kann nicht an den Variablen liegen, diese werden korrekt mit MySQL ausgelesen.
    Die Werte sind wie folgt:
    Hunger: 15
    Durst: 62
    Harndrang: 34
    In Game sieht das alles ein bisschen anders aus. Hier erstmal der Code.
    public BedurfnisseUpdaten(i) {
    if(SpielerInfo[i][pHunger] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pHunger]) {
    case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: { format(str, 256, "Hunger: ~g~||||||||||"); }
    case 11, 12, 13, 14, 15, 16, 17, 18 , 19, 20: { format(str, 256, "Hunger: ~r~|~g~|||||||||"); }
    case 21, 22, 23, 24, 25, 26, 27, 28, 29, 30: { format(str, 256, "Hunger: ~r~||~g~||||||||"); }
    case 31, 32, 33, 34, 35, 36, 37, 38, 39, 40: { format(str, 256, "Hunger: ~r~|||~g~|||||||"); }
    case 41, 42, 43, 44, 45, 46, 47, 48, 49, 50: { format(str, 256, "Hunger: ~r~||||~g~||||||"); }
    case 51, 52, 53, 54, 55, 56, 57, 58, 59, 60: { format(str, 256, "Hunger: ~r~|||||~g~|||||"); }
    case 61, 62, 63, 64, 65, 66, 67, 68, 69, 70: { format(str, 256, "Hunger: ~r~||||||~g~||||"); }
    case 71, 72, 73, 74, 75, 76, 77, 78, 79, 80:{ format(str, 256, "Hunger: ~r~|||||||~g~|||"); }
    case 81, 82, 83, 84, 85, 86, 87, 88, 89, 90: { format(str, 256, "Hunger: ~r~||||||||~g~||"); }
    case 91, 92, 93, 94, 95, 96, 97, 98, 99: { format(str, 256, "Hunger: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Hunger: ~r~||||||||||"); }
    }
    TextDrawSetString(Hunger[i], str);
    }
    else if(SpielerInfo[i][pDurst] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pDurst]) {
    case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: { format(str, 256, "Durst: ~g~||||||||||"); }
    case 11, 12, 13, 14, 15, 16, 17, 18 , 19, 20: { format(str, 256, "Durst: ~r~|~g~|||||||||"); }
    case 21, 22, 23, 24, 25, 26, 27, 28, 29, 30: { format(str, 256, "Durst: ~r~||~g~||||||||"); }
    case 31, 32, 33, 34, 35, 36, 37, 38, 39, 40: { format(str, 256, "Durst: ~r~|||~g~|||||||"); }
    case 41, 42, 43, 44, 45, 46, 47, 48, 49, 50: { format(str, 256, "Durst: ~r~||||~g~||||||"); }
    case 51, 52, 53, 54, 55, 56, 57, 58, 59, 60: { format(str, 256, "Durst: ~r~|||||~g~|||||"); }
    case 61, 62, 63, 64, 65, 66, 67, 68, 69, 70: { format(str, 256, "Durst: ~r~||||||~g~||||"); }
    case 71, 72, 73, 74, 75, 76, 77, 78, 79, 80:{ format(str, 256, "Durst: ~r~|||||||~g~|||"); }
    case 81, 82, 83, 84, 85, 86, 87, 88, 89, 90: { format(str, 256, "Durst: ~r~||||||||~g~||"); }
    case 91, 92, 93, 94, 95, 96, 97, 98, 99: { format(str, 256, "Durst: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Durst: ~r~||||||||||"); }
    }
    TextDrawSetString(Durst[i], str);
    }
    else if(SpielerInfo[i][pHarndrang] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pHarndrang]) {
    case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: { format(str, 256, "Harndrang: ~g~||||||||||"); }
    case 11, 12, 13, 14, 15, 16, 17, 18 , 19, 20: { format(str, 256, "Harndrang: ~r~|~g~|||||||||"); }
    case 21, 22, 23, 24, 25, 26, 27, 28, 29, 30: { format(str, 256, "Harndrang: ~r~||~g~||||||||"); }
    case 31, 32, 33, 34, 35, 36, 37, 38, 39, 40: { format(str, 256, "Harndrang: ~r~|||~g~|||||||"); }
    case 41, 42, 43, 44, 45, 46, 47, 48, 49, 50: { format(str, 256, "Harndrang: ~r~||||~g~||||||"); }
    case 51, 52, 53, 54, 55, 56, 57, 58, 59, 60: { format(str, 256, "Harndrang: ~r~|||||~g~|||||"); }
    case 61, 62, 63, 64, 65, 66, 67, 68, 69, 70: { format(str, 256, "Harndrang: ~r~||||||~g~||||"); }
    case 71, 72, 73, 74, 75, 76, 77, 78, 79, 80:{ format(str, 256, "Harndrang: ~r~|||||||~g~|||"); }
    case 81, 82, 83, 84, 85, 86, 87, 88, 89, 90: { format(str, 256, "Harndrang: ~r~||||||||~g~||"); }
    case 91, 92, 93, 94, 95, 96, 97, 98, 99: { format(str, 256, "Harndrang: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Harndrang: ~r~||||||||||"); }
    }
    TextDrawSetString(Harndrang[i], str);
    }
    return 1;
    }


    Wenn es vielleicht besser/anders geht, so sagt mir dies bitte, habe zuvor noch nicht wirklich Textdraws geupdatet :D
    Wie gesagt, hier ist noch der Screen, wie es In Game aussieht.


    Ich hoffe mir kann jemand von euch helfen!
    Liebe Grüße und noch einen schönen Abend/Nacht.

  • Ist eventuell etwas nebensächlich, aber PlayerTextDraws würden sich hier besser eignen, da es von normalen TextDraws maximal 2048 geben kann und du hast damit im schlimmsten Fall (also wie du es momentan hast) schon 500 verbraten. PlayerTextDraws haben dieses Limit nicht. ;)


    B2T: Was exakt geht denn nicht? Also Werte müssten denn auf dem Screen zu sehen sein?

    Ich bin Dittis Signatur.

  • Ob das der Fehler ist, weiß ich nicht, aber warum machst dus denn so kompliziert?
    case 1..10: { format(str, 256, "Hunger: ~g~||||||||||"); }
    case 11..20: { format(str, 256, "Hunger: ~r~|~g~|||||||||"); }
    case 21..30: { format(str, 256, "Hunger: ~r~||~g~||||||||"); }
    // und so weiter

    Professioneller Webentwickler.

  • Hab mal alles auf PlayerTextDraws umgeschrieben. Aber jetzt habe ich 84 Warning obwohl ALLES korrekt eingerückt ist.


    EDIT://
    Löst leider nicht mein Problem. :/

  • Das liegt wiederum an der Deutsch/Englishen Tastatur! Pawn ist eine Englishe Scriptsprache und daher wird auch mit dieser Tastatur gearbeitet! Ich selber hatte das problem bei mein Geldsystem als ich das Eurozeichen machen wollte... da kam ein "Á" raus.... und so ist das hier auch!

  • Das liegt wiederum an der Deutsch/Englishen Tastatur! Pawn ist eine Englishe Scriptsprache und daher wird auch mit dieser Tastatur gearbeitet! Ich selber hatte das problem bei mein Geldsystem als ich das Eurozeichen machen wollte... da kam ein "Á" raus.... und so ist das hier auch!


    In wie fern? Es wird ja alles Korrekt angezeigt, nur die Strings werden nicht richtig geupdatet.

  • Zitat

    In wie fern? Es wird ja alles Korrekt angezeigt, nur die Strings werden nicht richtig geupdatet.

    8| okay, ich dachte das du ein problem mit den anzeigen auch hast, du hast immerhin " | " geschrieben und auf den TD ist dann so ein Kreis, sry dann habe ich mich wohl Geiirt ^^ :rolleyes:

  • Das mit den Kreisen ist schon korrekt so.
    Ich gebe euch mal ein Beispiel.
    DIe Variable pDurst hat einen Wer von 46, aber es werden jedoch nur 3 rote Kreise angezeigt, obwohl es 4 sein müssten.


    Edit:
    Ich glaube ich habe den Fehler. Hunger, dass erste was im Script "berechnet" wird, wird korrekt angezeigt, die anderen wiederrum nicht.
    public BedurfnisseUpdaten(i) {
    if(SpielerInfo[i][pHunger] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pHunger]) {
    case 0..10: { format(str, 256, "Hunger: ~g~||||||||||"); }
    case 11..20: { format(str, 256, "Hunger: ~r~|~g~|||||||||"); }
    case 21..30: { format(str, 256, "Hunger: ~r~||~g~||||||||"); }
    case 31..40: { format(str, 256, "Hunger: ~r~|||~g~|||||||"); }
    case 41..50: { format(str, 256, "Hunger: ~r~||||~g~||||||"); }
    case 51..60: { format(str, 256, "Hunger: ~r~|||||~g~|||||"); }
    case 61..70: { format(str, 256, "Hunger: ~r~||||||~g~||||"); }
    case 71..80:{ format(str, 256, "Hunger: ~r~|||||||~g~|||"); }
    case 81.90: { format(str, 256, "Hunger: ~r~||||||||~g~||"); }
    case 91..99: { format(str, 256, "Hunger: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Hunger: ~r~||||||||||"); }
    }
    PlayerTextDrawSetString(i, Hunger[i], str);
    }
    else if(SpielerInfo[i][pDurst] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pDurst]) {
    case 0..10: { format(str, 256, "Durst: ~g~||||||||||"); }
    case 11..20: { format(str, 256, "Durst: ~r~|~g~|||||||||"); }
    case 21..30: { format(str, 256, "Durst: ~r~||~g~||||||||"); }
    case 31..40: { format(str, 256, "Durst: ~r~|||~g~|||||||"); }
    case 41..50: { format(str, 256, "Durst: ~r~||||~g~||||||"); }
    case 51..60: { format(str, 256, "Durst: ~r~|||||~g~|||||"); }
    case 61..70: { format(str, 256, "Durst: ~r~||||||~g~||||"); }
    case 71..80:{ format(str, 256, "Durst: ~r~|||||||~g~|||"); }
    case 81.90: { format(str, 256, "Durst: ~r~||||||||~g~||"); }
    case 91..99: { format(str, 256, "Durst: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Durst: ~r~||||||||||"); }
    }
    PlayerTextDrawSetString(i, Durst[i], str);
    }
    else if(SpielerInfo[i][pHarndrang] <= 100) {
    new str[256];
    switch(SpielerInfo[i][pHarndrang]) {
    case 0..10: { format(str, 256, "Harndrang: ~g~||||||||||"); }
    case 11..20: { format(str, 256, "Harndrang: ~r~|~g~|||||||||"); }
    case 21..30: { format(str, 256, "Harndrang: ~r~||~g~||||||||"); }
    case 31..40: { format(str, 256, "Harndrang: ~r~|||~g~|||||||"); }
    case 41..50: { format(str, 256, "Harndrang: ~r~||||~g~||||||"); }
    case 51..60: { format(str, 256, "Harndrang: ~r~|||||~g~|||||"); }
    case 61..70: { format(str, 256, "Harndrang: ~r~||||||~g~||||"); }
    case 71..80:{ format(str, 256, "Harndrang: ~r~|||||||~g~|||"); }
    case 81.90: { format(str, 256, "Harndrang: ~r~||||||||~g~||"); }
    case 91..99: { format(str, 256, "Harndrang: ~r~|||||||||~g~|"); }
    case 100: { format(str, 256, "Harndrang: ~r~||||||||||"); }
    }
    PlayerTextDrawSetString(i, Harndrang[i], str);
    }
    return 1;
    }

  • du darfst kein else if verwenden


    entferne einfach die else


    Du frägst ab ob die Variable Hunger unter 100 ist.
    wenn sie über 100 ist (was immer der Fall ist) führt er else if aus.
    Da das aber nicht der Fall ist überspringt er es einfach.
    Somit ruft er die anderen Funktionen garnicht auf ;)