Textdraws werden falsch 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
  • [pwn]stock textdrawerstellen()
    {
    Textdraw0 = TextDrawCreate(531.000000, 384.000000, "xx:");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 255);
    TextDrawTextSize(Textdraw0, 638.000000, 0.000000);


    Textdraw1 = TextDrawCreate(531.000000, 400.000000, "xx:");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);
    TextDrawUseBox(Textdraw1, 1);
    TextDrawBoxColor(Textdraw1, 255);
    TextDrawTextSize(Textdraw1, 638.000000, 0.000000);


    Textdraw2 = TextDrawCreate(531.000000, 416.000000, "xx:");
    TextDrawBackgroundColor(Textdraw2, 255);
    TextDrawFont(Textdraw2, 1);
    TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
    TextDrawColor(Textdraw2, -1);
    TextDrawSetOutline(Textdraw2, 0);
    TextDrawSetProportional(Textdraw2, 1);
    TextDrawSetShadow(Textdraw2, 1);
    TextDrawUseBox(Textdraw2, 1);
    TextDrawBoxColor(Textdraw2, 255);
    TextDrawTextSize(Textdraw2, 638.000000, 0.000000);
    return 1;
    }


    forward zeigetextdraw();
    public zeigetextdraw()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Teilnehmer"))
    {
    TextDrawShowForPlayer(i, Textdraw0);
    TextDrawShowForPlayer(i, Textdraw1);
    TextDrawShowForPlayer(i, Textdraw2);
    }
    }
    return 1;


    So wird der public aufgerufen-> SetTimer("zeigetextdraw",1,false);
    }


    Doch leider funktioniert es nicht, die Textdraws werden total komisch angezeigt.[/pwn]

  • Und was wird nicht angezeigt bzw. was soll angzeigt werden?

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Es sollte unten rechts eine kleine Box dargestellt werden mit Text: xx.
    Doch leider ist keine der Boxen identisch mit den Textdraws von mir.
    Also kann man ausschließen das nur einfach ein Teil nicht dargestellt wird.
    Sondern es wird alles nicht dargestellt.


    @Unbekannter Soldat:
    Woran kann das den liegen.
    Ich weiß aufjedenfall das die Textdraws alle richtig erstellt werden.
    Aber anscheinend kommt es zu einem Problem beim anzeigen.
    Möglich das die Schleife das verursacht das Problem?

  • New Text:Textdraw0 usw. wurde gemacht?
    Vermutlich ja.


    Und warum in einen Stock? Und wird der Stock aufgerufen? Wenn ja wo?


    Übrigens? Wo fragst du IsPlayerConnected ab?
    Sonst geht es ja alle durch?!

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • New Text:Textdraw0 usw. wurde gemacht?
    Vermutlich ja.


    Und warum in einen Stock? Und wird der Stock aufgerufen? Wenn ja wo?


    Habe ein stock gemacht, weil bei gamemodeinit tauchen die manchmal nie auf oder sie tauchen halt eben auf...
    Aber die sollen nicht permanent angezeigt werden sonder lediglich sobald es beginnt.


    Die Dialoge werden so:
    unter einem Befehl z.B.
    ocmd:/hilfe
    {
    SetTimer("zeigetextdraw",1,false);
    return 1;
    }
    aufgerufen.

  • New Text:Textdraw0 usw. wurde gemacht?
    Vermutlich ja.


    Und warum in einen Stock? Und wird der Stock aufgerufen? Wenn ja wo?


    Übrigens? Wo fragst du IsPlayerConnected ab?
    Sonst geht es ja alle durch?!


    Post nochmal Aktualisiert.
    Du zeigst es ja nicht an. Du musst es aber bei OnGameModeInit erstellen.
    Wann rufst du den Stock auf das sie erstellt werden?

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Lass mal die Textdraws unter OnGameModeInit createn.
    Und vergess den Stock mal ;)

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ok danke schon mal für die Hilfe.
    Also ich mache alle Textdraws bzw. die CreateTextdraws unter OnGameModeInit.......
    Und lass den stock so wie er ist, also den zweiten Stock:
    forward zeigetextdraw();
    public zeigetextdraw()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Teilnehmer"))
    {
    TextDrawShowForPlayer(i, Textdraw0);
    TextDrawShowForPlayer(i, Textdraw1);
    TextDrawShowForPlayer(i, Textdraw2);
    }
    }
    return 1;


    Und rufe Ihn einfach so auf:
    SetTimer("zeigetextdraw",1,false);
    Oder gibt es eine bessere Option ihn aufzurufen?

  • Genau.
    Hier mal ein Tut [ SCRIPTING ] Einfache TextDraws erstellen - mit erklärung


    Aber bei der Schleife solltest du noch IsPlayerConnected abfragen ;)

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Genau.
    Hier mal ein Tut [ SCRIPTING ] Einfache TextDraws erstellen - mit erklärung


    Aber bei der Schleife solltest du noch IsPlayerConnected abfragen ;)



    Funktioniert jetzt alles einwanfrei, habe jetzt noch ne frage
    Wie entferne ich die jetzt am besten wieder.
    Und muss ich unbedingt einen Timer erstellen um den stock aufzurufen?

  • Was möchtest du entfernen. Löschen oder verstecken.
    Wenn ich wüsste was du vor hast, kann ich dir sagen wie du es ohne Timer machen kannst.

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Hiermit kannst du ihn wieder verstecken:
    http://wiki.sa-mp.com/wiki/TextDrawHideForPlayer


    Und das löscht ihn:
    http://wiki.sa-mp.com/wiki/TextDrawDestroy

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Kommen leider Errors wenn ich das so mache:
    forward löschetextdraw();
    public löschetextdraw()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Teilnehmer"))
    {
    TextDrawDestroy(i, Textdraw0);
    TextDrawDestroy(i, Textdraw1);
    TextDrawDestroy(i, Textdraw2);
    }
    }
    return 1;
    }

    Und wie kann ich den stock auffrufen ohne Timer:
    SetTimer("zeigetextdraw",1,false);


    Danke für deine Hilfsbereitschaft.

  • Welche Errors?
    Und sollte mit löschetextdraw(); Klappen. ( Das ohne Timer)
    Benutze aber keine ö,ä,ü usw. ;)

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry

  • Errors:
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(366) : error 001: expected token: "(", but found "ö"
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(366) : error 001: expected token: ";", but found "-identifier-"
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(367) : error 001: expected token: ";", but found "ö"
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(369) : error 010: invalid function or declaration
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(371) : error 010: invalid function or declaration
    C:\Users\Alex\Desktop\Scripts\Samp-Server\filterscripts\deaglesystem.pwn(378) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

  • Hier:
    forward loeschetextdraw();
    public loeschetextdraw()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i, "Teilnehmer"))
    {
    TextDrawDestroy(i, Textdraw0);
    TextDrawDestroy(i, Textdraw1);
    TextDrawDestroy(i, Textdraw2);
    }
    }
    return 1;
    }
    Aufrufen ohne Timer mit: loeschetextdraw();


    Fehler ist offensichtlich

    Bewahre mich vor dem naiven Glauben, es müsse im Leben alles glatt gehen. Schenke mir die nüchterne Erkenntnis, dass Schwierigkeiten, Niederlagen, Misserfolge, Rückschläge eine selbstverständliche Zugabe zum Leben sind, durch die wir wachsen und reifen.
    _______________________________________________________________________________________________________________



    Antoine de Saint-Exupéry