TextDraw clicked Problem...

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 Breadfish-Community,


    ich bräuchte eure Hilfe, ich komme bei den Clicked Textdraws nicht weiter...
    Davor hatte ich das Problem das keine Textdraws mehr angezeigt werden und ich habe es mit PlayerTextDraw versucht was jetzt auch geht,
    allerdings bei meinem reportbox kann ich nich mehr anklicken...



    new PlayerText:ReportBox2[MAX_PLAYERS];



    ReportBox2[playerid] = CreatePlayerTextDraw(playerid, 264.500000, 193.083358, "Allgemeiner Report");
    PlayerTextDrawLetterSize(playerid, ReportBox2[playerid], 0.449999, 1.600000);
    PlayerTextDrawAlignment(playerid, ReportBox2[playerid], 1);
    PlayerTextDrawColor(playerid, ReportBox2[playerid], -1);
    PlayerTextDrawSetShadow(playerid, ReportBox2[playerid], 0);
    PlayerTextDrawSetOutline(playerid, ReportBox2[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, ReportBox2[playerid], 51);
    PlayerTextDrawFont(playerid, ReportBox2[playerid], 1);
    PlayerTextDrawSetProportional(playerid, ReportBox2[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, ReportBox2[playerid], true);


    ab hier fängt das eigentliche Problem an:

    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(_:clickedid != INVALID_TEXT_DRAW)
    {
    //================================== [ Report ] ==============================//
    if(clickedid == ReportBox2[playerid])
    {
    if(allowreport == 1)
    {
    return SendClientMessage(playerid,COLOR_WHITE,"{FDFF9D}Info:{FFFFFF} Derzeitig ist der Ticket-Support {FF9999}geschlossen{FFFFFF}... Bitte {FF9999}versuche{FFFFFF} es später erneut!");
    }
    ShowPlayerDialog(playerid,DIALOG_REPORT_FENSTER,DIALOG_STYLE_INPUT,"Allgemeiner Report","Bitte schreibe hier deine Frage rein.\nEin Administrator wird dein Ticket gleich annehmen!","Senden","Abbrechen");
    PlayerTextDrawHide(playerid,ReportBox0[playerid]);
    PlayerTextDrawHide(playerid,ReportBox1[playerid]);
    PlayerTextDrawHide(playerid,ReportBox2[playerid]);
    PlayerTextDrawHide(playerid,ReportBox3[playerid]);
    PlayerTextDrawHide(playerid,ReportBox4[playerid]);
    PlayerTextDrawHide(playerid,ReportBox5[playerid]);
    PlayerTextDrawHide(playerid,ReportBox6[playerid]);
    PlayerTextDrawHide(playerid,ReportBox7[playerid]);
    PlayerTextDrawHide(playerid,ReportBox8[playerid]);
    PlayerTextDrawHide(playerid,ReportBox9[playerid]);
    }
    else if(clickedid == ReportBox3[playerid])
    {
    if(allowreport == 1)
    {
    return SendClientMessage(playerid,COLOR_WHITE,"{FDFF9D}Info:{FFFFFF} Derzeitig ist der Ticket-Support {FF9999}geschlossen{FFFFFF}... Bitte {FF9999}versuche{FFFFFF} es später erneut!");
    }
    ShowPlayerDialog(playerid,DIALOG_REPORT_CHEATER,DIALOG_STYLE_INPUT,"Cheater melden","Bitte schreibe zunächst dem Spieler seinen Namen und was er gecheatet hat auf!","Melden","Abbrechen");
    PlayerTextDrawHide(playerid,ReportBox0[playerid]);
    PlayerTextDrawHide(playerid,ReportBox1[playerid]);
    PlayerTextDrawHide(playerid,ReportBox2[playerid]);
    PlayerTextDrawHide(playerid,ReportBox3[playerid]);
    PlayerTextDrawHide(playerid,ReportBox4[playerid]);
    PlayerTextDrawHide(playerid,ReportBox5[playerid]);
    PlayerTextDrawHide(playerid,ReportBox6[playerid]);
    PlayerTextDrawHide(playerid,ReportBox7[playerid]);
    PlayerTextDrawHide(playerid,ReportBox8[playerid]);
    PlayerTextDrawHide(playerid,ReportBox9[playerid]);
    }
    }
    return 1;
    }


    Nach dem Compilen bekomme ich diesen Fehler: warning 213: tag mismatch


    Bei der Zeile if(clickedid == ReportBox2[playerid]) der fehler...


    Könnt ihr mir weiterhelfen, ich komme an der Stelle nicht weiter...


    Vielen Dank im vorraus!


    Lg
    J0a9

  • Du musst die Größe das anklickbaren Bereiches mit PlayerTextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/PlayerTextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist PlayerTextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre PlayerTextDrawTextSize-Y = 24.





    Der Code muss in das Callback https://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw_DE

  • public OnPlayerClickTextDraw(playerid, Text:clickedid)


    Du hast PlayerTextDraws versucht das aber über die Globalen TextDraws abzugreifen


    Nutze das Callback OnPlayerClickPlayerTextDraw

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

    Margarete Stokowski