Fehlende Callbacks

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
  • Hi.
    Danke für die Hilfe. Ich habe es jetzt hinbekommen, indem ich das Callback einfach erstellt habe. Aber (siehe Bild) wenn ich auf login klicke, kommt trotzdem der Passwort Dialog. Egal wo ich hinklicke, alles unterhalb des Passwort Schriftzuges ruft noch den Passwort dialog auf.


    Der Code sieht so aus:
    Textdraw7[i] = TextDrawCreate(129.619110, 267.960006, "LOGIN");
    TextDrawLetterSize(Textdraw7[i], 0.449999, 1.600000);
    TextDrawAlignment(Textdraw7[i], 1);
    TextDrawColor(Textdraw7[i], -1);
    TextDrawSetShadow(Textdraw7[i], 0);
    TextDrawSetOutline(Textdraw7[i], 1);
    TextDrawBackgroundColor(Textdraw7[i], 51);
    TextDrawFont(Textdraw7[i], 1);
    TextDrawSetProportional(Textdraw7[i], 1);
    TextDrawSetSelectable(Textdraw7[i],1);


    Textdraw2[i] = TextDrawCreate(129.904785, 217.173339, "Benutzername:");
    TextDrawLetterSize(Textdraw2[i], 0.449999, 1.600000);
    TextDrawAlignment(Textdraw2[i], 1);
    TextDrawColor(Textdraw2[i], -1);
    TextDrawSetShadow(Textdraw2[i], 0);
    TextDrawSetOutline(Textdraw2[i], 1);
    TextDrawBackgroundColor(Textdraw2[i], 51);
    TextDrawFont(Textdraw2[i], 1);
    TextDrawSetProportional(Textdraw2[i], 1);
    TextDrawSetSelectable(Textdraw2[i], 1);


    Textdraw3[i] = TextDrawCreate(129.904785, 237.653335, "Passwort:");
    TextDrawLetterSize(Textdraw3[i], 0.449999, 1.600000);
    TextDrawAlignment(Textdraw3[i], 1);
    TextDrawColor(Textdraw3[i], -1);
    TextDrawSetShadow(Textdraw3[i], 0);
    TextDrawSetOutline(Textdraw3[i], 1);
    TextDrawBackgroundColor(Textdraw3[i], 51);
    TextDrawFont(Textdraw3[i], 1);
    TextDrawSetProportional(Textdraw3[i], 1);
    TextDrawSetSelectable(Textdraw3[i], 1);
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(clickedid == Textdraw2[playerid])
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN_BENUTZERNAME, DIALOG_STYLE_INPUT, "Login", "Bitte gib deinen Benutzernamen ein:", "Bestätigen", "Abbrechen");
    }
    if(clickedid == Textdraw3[playerid])
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN_BENUTZERNAME, DIALOG_STYLE_PASSWORD, "Login", "Bitte gib dein Passwort ein:", "Bestätigen", "Abbrechen");
    }
    if(clickedid == Textdraw7[playerid])
    {
    SendClientMessage(playerid,COLOR_RED,"cool");
    }
    return 1;
    }

  • Du nutzt kein TextDrawTextSize.


    Schau dir mal diesen Thread an, da sind wir das mal ausführlich durchgegangen, wie das mit dem Radius zum anklicken gemacht werden muss.
    Anklickbare TextDraws Funktionieren nicht


    Die Box kannst du natürlich, wenn es mit dem Anklicken klappt auf TextDrawUseBox false setzen, aber zum anpassen des anklickbaren Bereichs eignet sich eine Box gut.


    Aufpassen: Die Y-Größe (Höhe) sieht man an der Box nicht, die musst du abschätzen!

  • Danke. Funktioniert.
    Ich versuche jetzt die Eingaben via DIALOG_STYLE_INPUT in einem Textdraw wieder auszugeben. Beim Benutzernamen funktioniert das super. Nur das Problem ist, dass wenn ich beim Passwort eine eingabe mache, das Username Textdraw geändert wird. Obwohl ich definitiv das richtige Textdraw anspreche. Ich verstehe nicht wieso. Es werden auch die richtigen Werte ausgelesen. Mit dem SendClientMessage befehl erhalte ich auch die richtige eingabe. Sie wird nur immer wieder hinter Benutzername: angezeigt.
    if(dialogid==DIALOG_LOGIN_BENUTZERNAME)
    {
    if(response)
    {
    TextDrawSetString(Textdraw8[playerid],inputtext);
    TextDrawShowForPlayer(playerid,Textdraw8[playerid]);
    SendClientMessage(playerid,COLOR_BLUE,inputtext);
    }
    }

    if(dialogid==DIALOG_LOGIN_PASSWORT)
    {
    if(response)
    {
    TextDrawSetString(Textdraw9[playerid],inputtext);
    TextDrawShowForPlayer(playerid,Textdraw9[playerid]);
    SendClientMessage(playerid,COLOR_BLUE,inputtext);
    }
    }


    Textdraw8[i] = TextDrawCreate(250.904785, 217.173339, " ");
    TextDrawLetterSize(Textdraw8[i], 0.449999, 1.600000);
    TextDrawTextSize(Textdraw8[i],350.0,10.0);
    TextDrawAlignment(Textdraw8[i], 1);
    TextDrawColor(Textdraw8[i], -1);
    TextDrawSetShadow(Textdraw8[i], 0);
    TextDrawSetOutline(Textdraw8[i], 1);
    TextDrawBackgroundColor(Textdraw8[i], 51);
    TextDrawFont(Textdraw8[i], 1);
    TextDrawSetProportional(Textdraw8[i], 1);
    TextDrawSetSelectable(Textdraw8[i], 1);


    Textdraw9[i] = TextDrawCreate(250.904785, 237.653335, " ");
    TextDrawLetterSize(Textdraw9[i], 0.449999, 1.600000);
    TextDrawAlignment(Textdraw9[i], 1);
    TextDrawColor(Textdraw9[i], -1);
    TextDrawTextSize(Textdraw9[i],350.0,10.0);
    TextDrawSetShadow(Textdraw9[i], 0);
    TextDrawSetOutline(Textdraw9[i], 1);
    TextDrawBackgroundColor(Textdraw9[i], 51);
    TextDrawFont(Textdraw9[i], 1);
    TextDrawSetProportional(Textdraw9[i], 1);
    TextDrawSetSelectable(Textdraw9[i], 1);


    EDIT:
    Hatte versehentlich beiden Dialogen die gleiche ID zugewiesen. Hat sich erledigt.

    Einmal editiert, zuletzt von Alca_White ()