Anklickbare TextDraws Funktionieren nicht

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 Community!
    Ich erstelle gerade ein Anklickbares Register/Einlogg System, aber langsam habe ich keine ahung mehr habe schon gegogglet aber bringt nicht viel.
    Und zwar ich möchte das 3 sachen anklickbar sind (Registrierung,Login,Updates).
    Updates funktioniert aber dort ist noch keine funktion drauf.
    Registrierung und Login funktionieren nicht aber dort ist eine Funktion drauf.
    Ich zeuge euch mal die paar codes, OnGameModelInit sollte alles richtig sein.


    public OnPlayerConnect(playerid)
    {
    //Einlogg phase
    SelectTextDraw(playerid, 0x00FF00FF);
    TextDrawShowForPlayer(playerid,registerr);
    TextDrawShowForPlayer(playerid,einloggen);
    TextDrawShowForPlayer(playerid,box);
    TextDrawShowForPlayer(playerid,willkommen);
    TextDrawShowForPlayer(playerid,neu);
    TextDrawShowForPlayer(playerid,neu1);
    TextDrawShowForPlayer(playerid,news);
    TextDrawShowForPlayer(playerid,zeit);
    TextDrawShowForPlayer(playerid,updates);
    TextDrawShowForPlayer(playerid,version);
    return 1;
    }



    public OnPlayerSpawn(playerid)
    {
    //Einlogg textdraws
    TextDrawHideForPlayer(playerid,registerr);
    TextDrawHideForPlayer(playerid,einloggen);
    TextDrawHideForPlayer(playerid,box);
    TextDrawHideForPlayer(playerid,willkommen);
    TextDrawHideForPlayer(playerid,neu);
    TextDrawHideForPlayer(playerid,neu1);
    TextDrawHideForPlayer(playerid,news);
    TextDrawHideForPlayer(playerid,zeit);
    TextDrawHideForPlayer(playerid,updates);
    TextDrawHideForPlayer(playerid,version);
    CancelSelectTextDraw(playerid);
    return 1;
    }



    /* ===== [ Publics ] ===== */
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(_:clickedid != INVALID_TEXT_DRAW)
    {
    if(clickedid == registerr)
    {
    new string[150];
    new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(!dini_Exists(Spielerdatei))
    {
    //Register
    format(string,150,"\
    {FAFAFA}Herzlich Willkommen auf German Reallife, {00B9FF}%s.\n\
    {FAFAFA}Bitte wähle ein Passwort um dich zu Registrieren.",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung",string,"Wählen","Abbrechen");
    CancelSelectTextDraw(playerid);


    }
    return 1;
    }
    }
    if(_:clickedid != INVALID_TEXT_DRAW)
    {
    if(clickedid == einloggen)
    {
    new string[150];
    new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(dini_Exists(Spielerdatei))
    {
    //Login
    format(string,150,"\
    {FAFAFA}Willkommen zurück auf German Reallife, {00B9FF}%s.\n\
    {FAFAFA}Bitte gib dein Passwort ein um fortzufahren.",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    CancelSelectTextDraw(playerid);
    }
    return 1;
    }
    }
    return 1;
    }

  • OnGameModelInit:


    /* ===== [ Textdraws ] =====*/
    updates = TextDrawCreate(500.000000, 308.000000, "Updates");
    TextDrawLetterSize(updates, 0.359000, 1.473125);
    TextDrawAlignment(updates, 1);
    TextDrawColor(updates, -1523963137);
    TextDrawSetShadow(updates, 1);
    TextDrawSetOutline(updates, 0);
    TextDrawBackgroundColor(updates, 255);
    TextDrawFont(updates, 1);
    TextDrawSetProportional(updates, 1);
    TextDrawSetSelectable(updates, true);


    registerr = TextDrawCreate(497.500000, 269.937500, "Registrieren");
    TextDrawLetterSize(registerr, 0.339000, 1.739999);
    TextDrawTextSize(registerr, 48.000000, 41.125000);
    TextDrawAlignment(registerr, 1);
    TextDrawColor(registerr, -1523963137);
    TextDrawSetShadow(registerr, 1);
    TextDrawSetOutline(registerr, 0);
    TextDrawBackgroundColor(registerr, 255);
    TextDrawFont(registerr, 1);
    TextDrawSetProportional(registerr, 1);
    TextDrawSetSelectable(registerr, true);


    einloggen = TextDrawCreate(498.500000, 290.500000, "Login");
    TextDrawLetterSize(einloggen, 0.404000, 1.455623);
    TextDrawTextSize(einloggen, -3.500000, -56.437500);
    TextDrawAlignment(einloggen, 1);
    TextDrawColor(einloggen, -1523963137);
    TextDrawSetShadow(einloggen, 1);
    TextDrawSetOutline(einloggen, 0);
    TextDrawBackgroundColor(einloggen, 255);
    TextDrawFont(einloggen, 1);
    TextDrawSetProportional(einloggen, 1);
    TextDrawSetSelectable(einloggen, true);

    box = TextDrawCreate(644.000000, 1.500000, "usebox");
    TextDrawLetterSize(box, 0.000000, 50.512493);
    TextDrawTextSize(box, 422.000000, 0.000000);
    TextDrawAlignment(box, 1);
    TextDrawColor(box, 0);
    TextDrawUseBox(box, true);
    TextDrawBoxColor(box, 102);
    TextDrawSetShadow(box, 0);
    TextDrawSetOutline(box, 0);
    TextDrawFont(box, 0);


    willkommen = TextDrawCreate(534.500000, 10.500000, "Reallife");
    TextDrawLetterSize(willkommen, 0.279500, 2.028749);
    TextDrawTextSize(willkommen, -86.500000, 72.625000);
    TextDrawAlignment(willkommen, 2);
    TextDrawColor(willkommen, -2139094785);
    TextDrawSetShadow(willkommen, 0);
    TextDrawSetOutline(willkommen, 1);
    TextDrawBackgroundColor(willkommen, 51);
    TextDrawFont(willkommen, 2);
    TextDrawSetProportional(willkommen, 1);


    neu = TextDrawCreate(424.500000, 70.875000, "--------------------> Neuigkeiten <--------------------");
    TextDrawLetterSize(neu, 0.245499, 1.341875);
    TextDrawAlignment(neu, 1);
    TextDrawColor(neu, -16777080);
    TextDrawSetShadow(neu, 0);
    TextDrawSetOutline(neu, 1);
    TextDrawBackgroundColor(neu, 51);
    TextDrawFont(neu, 1);
    TextDrawSetProportional(neu, 1);


    neu1 = TextDrawCreate(424.500000, 222.250000, "--------------------> Neuigkeiten <--------------------");
    TextDrawLetterSize(neu1, 0.246999, 1.394374);
    TextDrawAlignment(neu1, 1);
    TextDrawColor(neu1, -16777080);
    TextDrawSetShadow(neu1, 0);
    TextDrawSetOutline(neu1, 1);
    TextDrawBackgroundColor(neu1, 51);
    TextDrawFont(neu1, 1);
    TextDrawSetProportional(neu1, 1);


    news = TextDrawCreate(430.000000, 91.000000, "=> Hier kann dein Text stehen");
    TextDrawLetterSize(news, 0.175000, 1.232500);
    TextDrawAlignment(news, 1);
    TextDrawColor(news, -1061109505);
    TextDrawSetShadow(news, 0);
    TextDrawSetOutline(news, 1);
    TextDrawBackgroundColor(news, 255);
    TextDrawFont(news, 1);
    TextDrawSetProportional(news, 1);


    zeit = TextDrawCreate(501.000000, 40.250000, "Zeit: 18:00:30");
    TextDrawLetterSize(zeit, 0.214999, 1.411874);
    TextDrawAlignment(zeit, 1);
    TextDrawColor(zeit, -5963521);
    TextDrawSetShadow(zeit, 0);
    TextDrawSetOutline(zeit, 1);
    TextDrawBackgroundColor(zeit, 51);
    TextDrawFont(zeit, 1);
    TextDrawSetProportional(zeit, 1);


    version = TextDrawCreate(501.500000, 387.625000, "Version: 1.0");
    TextDrawLetterSize(version, 0.326499, 1.521250);
    TextDrawAlignment(version, 1);
    TextDrawColor(version, 8388863);
    TextDrawSetShadow(version, 2);
    TextDrawSetOutline(version, 0);
    TextDrawBackgroundColor(version, 255);
    TextDrawFont(version, 2);
    TextDrawSetProportional(version, 1);

  • Ja, das sieht genau danach aus.


    Lösungsvorschlag:
    Gebe den drei Textdraws jeweils die Einstellung mit, dass sie eine Box haben, und setze die Box Farbe zu einer Farbe die du vom Rest unterschieden kannst.
    Dann gehe ins Spiel und schau dir die Boxen an. Die werden entweder extrem riesig sein, oder gar nicht da.
    Dann gehst du wieder in den Code und passt die TextDrawTextSize an, bis deine drei Textdraws eine gescheite Box haben (die Box entspricht dem Bereich den du anklicken kannst). Wenn das passt, kannst du die Einstellung TextDrawUseBox wieder ausschalten.


    Versuch das mal so.



    Alternativ kannst du auch erst mal versuchen TextDrawTextSize für alle drei zu entfernen, wenn diese gar keine Box haben, vielleicht klappt das auch.


  • Schau dir doch die grauen Boxen an, wo die hingehen. Das siehst du doch, dass das nicht stimmt.


    Die Boxen müssen schön um das Wort rum gehen, so:


    Habe ich gemacht aber aus irgendein Grund geht immer nur das untere.
    Zb ich habe nun Updates weg gelassen jetzt geht aber nur Login.


    registerr = TextDrawCreate(481.000000, 294.000000, "Registrierung");
    TextDrawLetterSize(registerr, 0.449999, 1.600000);
    TextDrawTextSize(registerr, 620.500000, -56.875000);
    TextDrawAlignment(registerr, 1);
    TextDrawColor(registerr, -1061109505);
    TextDrawUseBox(registerr, true);
    TextDrawBoxColor(registerr, -1523963137);
    TextDrawSetShadow(registerr, 2);
    TextDrawSetOutline(registerr, 0);
    TextDrawBackgroundColor(registerr, 255);
    TextDrawFont(registerr, 2);
    TextDrawSetProportional(registerr, 1);
    TextDrawSetSelectable(registerr, true);


    einloggen = TextDrawCreate(528.000000, 317.187500, "Login");
    TextDrawLetterSize(einloggen, 0.380499, 1.853749);
    TextDrawTextSize(einloggen, 573.500000, 14.000000);
    TextDrawAlignment(einloggen, 1);
    TextDrawColor(einloggen, -1061109505);
    TextDrawUseBox(einloggen, true);
    TextDrawBoxColor(einloggen, -1523963137);
    TextDrawSetShadow(einloggen, 2);
    TextDrawSetOutline(einloggen, 0);
    TextDrawBackgroundColor(einloggen, 255);
    TextDrawFont(einloggen, 2);
    TextDrawSetProportional(einloggen, 1);
    TextDrawSetSelectable(einloggen, true);



    oder: http://s14.directupload.net/images/141018/dfgviwzp.png

  • Schau mal, du hast hier einen negativen Wert, das scheint mir nicht richtig, für eine Größe. Ein Kasten kann doch nicht -50 Groß sein. ^^


    TextDrawTextSize(registerr, 620.500000, -56.875000);
    zu:
    TextDrawTextSize(registerr, 620.500000, 14.0000);

  • Es geht, danke dir Jeffrey.
    Aber eine Frage nebenbei, wie kann ich diesen Spawn button und so weg machen? Weil ich möchte nicht wenn man sich einloggt etc das man auf spawn oder so klicken kann ^^


    //EDIT:
    Habe ich weg gemacht trz Danke ;)