Texdraw string ändert sich

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 ein Textdraw, dass in einem Timer immer wieder neu erstellt wird(anders gehts nicht, da die position verändert werden muss). Nun ist das Problem, dass immer wenn ich einen Befehl eingebe solange sich das Textdraw bewegt, ändert sich der Text vom Textdraw. Ich glaube es liegt daran, dass ich das Textdraw immer wieder neu erstell aber anders gehts ja nicht :/ habt ihr ne Idee?

  • wie meinste das? soll der Textdraw sich immer ändern von der Position her oder nur der Text?


    so ist für Text ändern
    TextDrawHideForPlayer(playerid,TextDrawName);
    TextDrawSetString(TextDrawName,"Bla bla bla");
    TextDrawShowForPlayer(playerid,TextDrawName);

  • Also ich versteh dich, am besten lässt du einen globalen String erstellen wie zB.:


    new gTextdrawString[256];


    und erstellt den Textdraw mit dem String wie:


    TextDrawCreate(X, Y, gTextdrawString);


    und ändern tust du es halt dann mit


    format(gTextdrawString, sizeof(gTextdrawString), "Blah Blah");

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • @ [GwR]HEiTZER:
    Ich muss das Textdraw immer wieder neu erstellen weil ich nur die Koordinaten ändern will.
    Templer:
    hm so klappts auch nicht. Sobald ich einen Befehl eingeb, wird der String geändert...


    noch wer ne idee? :)


    Edit:


    Mir ist gerade aufgefallen, das dieser Fehler fast nur bei Befehlen auftritt, die nicht existieren!

    Einmal editiert, zuletzt von Haxler ()

  • public MoveLineText(playerid,tcaption[],anzahl)
    {
    if(lineanzahl >= anzahl)
    {
    ttext = 148.000000;
    KillTimer(linetimer);
    linerun = false;
    lineanzahl=0;
    }
    if(ttext >= 640.000000) // ttext ist ein Float^^
    {
    ttext = 148.000000;
    lineanzahl++;
    }
    format(linestring,sizeof(linestring),"%s",tcaption); // wenn ich tcaption direkt verwende crasht der server
    TextDrawHideForAll(linetext);
    TextDrawDestroy(linetext);
    ttext+=1;
    linetext = TextDrawCreate(ttext,431.000000,linestring);
    TextDrawAlignment(linetext,0);
    TextDrawBackgroundColor(linetext,0x000000ff);
    TextDrawFont(linetext,3);
    TextDrawLetterSize(linetext,0.399999,1.600000);
    TextDrawColor(linetext,0xffffffff);
    TextDrawSetOutline(linetext,1);
    TextDrawSetProportional(linetext,1);
    TextDrawSetShadow(linetext,1);
    TextDrawShowForAll(linetext);
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ocmd:movetext(playerid,params[])
    {
    if(PlayerInfo[playerid][admin] < d_movetext)return SendClientMessage(playerid,rot,"Du bist kein Admin oder hast nicht die nötigen Rechte!");
    new dtext[256],anzl;
    if(sscanf(params, "ds",anzahl,text))return SendClientMessage(playerid,rot,"Verwendung: /movetext [durchläufe][textäufe]");
    if(linerun == true)return 0;
    KillTimer(linetimer);
    ttext = 148.000000;
    linetimer = SetTimerEx("MoveLineText",30,1,"dsd",playerid,dtext,anzl);
    linerun = true;
    return 1;
    }


    Edit: So habs jetzt geschafft. Hatte unter OnPlayerCommandText ne Abfrage die den Fehler i-wie verursacht hat. Jetzt schon ein neues Problem: Sobald ein Spieler auf den Server kommt crasht dieser solange der Text läuft...

    Einmal editiert, zuletzt von Haxler ()