-> TextDrawTextSize Funktioniert nicht <- Bitte um Hilfe.

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.
    Wie gesagt Funktioniert die Funktion TextDrawTextSize leider nicht.
    Wenn ich drauf drücken will passiert nix. Sogar die Farbe von SelectTextDraw oder so ka. kommt nicht.
    Bitte um Hilfe.
    Ich benutze iPleomax.


    Und hier sind die Codes:
    Reg2 = TextDrawCreate(87.144943, 249.083282, "Registrieren");
    TextDrawLetterSize(Reg2, 0.449999, 1.600000);
    //TextDrawTextSize(Reg2, 279.707336, 78.749992);
    TextDrawTextSize(Reg2, 87.144943, 249.083282);
    TextDrawAlignment(Reg2, 1);
    TextDrawColor(Reg2, -1);
    TextDrawSetShadow(Reg2, 0);
    TextDrawSetOutline(Reg2, 1);
    TextDrawBackgroundColor(Reg2, 51);
    TextDrawFont(Reg2, 1);
    TextDrawSetProportional(Reg2, 1);
    TextDrawSetSelectable(Reg2, true);

  • Diese Funktion noch unter, TextDrawSetSelectable:


    SelectTextDraw(playerid, farbe);


    Und da du ja auch nur den Textdraw erstellt hast, musst du weiter arbeiten mit "public OnPlayerClickTextDraw"
    das sieht dann in etwa so aus:

    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(clickedid == Reg)
    {
    // Hier was passieren soll wenn er drauf klickt
    }
    }


    EDIT:


    Arbeite unter OnPlayerConnect mit [playerid] bei den Textdraws, also ich meine das so:


    new Reg[MAX_PLAYERS]; // Globale Vari

    // Dann das so unter OnPlayerconnect:
    public OnPlayerConnect()
    {
    Reg2[playerid] = TextDrawCreate(87.144943, 249.083282, "Registrieren");
    TextDrawLetterSize(Reg2[playerid], 0.449999, 1.600000);
    TextDrawTextSize(Reg2[playerid], 279.707336, 78.749992);
    TextDrawTextSize(Reg2[playerid], 87.144943, 249.083282);
    TextDrawAlignment(Reg2[playerid], 1);
    TextDrawColor(Reg2[playerid], -1);
    TextDrawSetShadow(Reg2[playerid], 0);
    TextDrawSetOutline(Reg2[playerid], 1);
    TextDrawBackgroundColor(Reg2[playerid], 51);
    TextDrawFont(Reg2[playerid], 1);
    TextDrawSetProportional(Reg2[playerid], 1);
    TextDrawSetSelectable(Reg2[playerid], true); SelectTextDraw(playerid, farbe);
    return 1;
    }

    3 Mal editiert, zuletzt von Equ ()


  • Habe ich alles ja schon gemacht.


    Code:
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    #pragma tabsize 0
    if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
    {
    if(clickedid == Reg2) //Wir fangen indem Fall bei 1 an weil wir ja nicht wollen das 0 anklickbar ist.
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Dein Account wurde nicht gefunden bitte gebe dein gewünschtes Passwort ein.","Spielen","Abbrechen");
    }
    SendClientMessage(playerid,ROT,"Du besitzt ein Account!");
    }
    else if(clickedid == Reg4)
    {
    new Spielerdatei[64];
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Hallo {F50000}%s . {FFFFFF}Dein Account wurde in der Datenbank gefunden. Bitte logge dich ein!","Spielen","Abbrechen");
    }
    SendClientMessage(playerid,ROT,"Du besitzt kein Account!");
    }
    else if(clickedid == Reg6)
    {
    SendClientMessage(playerid,ROT,"ERROR");
    }
    /*else if(clickedid == Textdraw4)
    {
    CancelSelectTextDraw(playerid); //Schließt den TD (Abbrechen) CancelSelectTextDraw = zu deutsch SchließeAusgewähltenTextdraw
    }
    */
    TextDrawHideForPlayer(playerid,Reg0); //nicht wundern das wir hier 0 nehmen, wir wollen ja das alle TD angezeigt werden.
    TextDrawHideForPlayer(playerid,Reg1);// TextDrawHideForPlayer heißt das das TD für den Spieler nicht mehr zu sehen ist.
    TextDrawHideForPlayer(playerid,Reg2);
    TextDrawHideForPlayer(playerid,Reg3);
    TextDrawHideForPlayer(playerid,Reg4);
    TextDrawHideForPlayer(playerid,Reg5);
    TextDrawHideForPlayer(playerid,Reg6);
    TextDrawHideForPlayer(playerid,Reg7);
    TextDrawHideForPlayer(playerid,Reg8);
    CancelSelectTextDraw(playerid); //Schleißt alle TD´s wenn eine Sache ausgewählt wurde.
    }
    return 1;
    }


    Und SelectTextDraw hab ich schon gemacht. Bei OnPlayerConnect:
    TextDrawShowForPlayer(playerid,Reg0);
    TextDrawShowForPlayer(playerid,Reg1);
    TextDrawShowForPlayer(playerid,Reg2);
    TextDrawShowForPlayer(playerid,Reg3);
    TextDrawShowForPlayer(playerid,Reg4);
    TextDrawShowForPlayer(playerid,Reg5);
    TextDrawShowForPlayer(playerid,Reg6);
    TextDrawShowForPlayer(playerid,Reg7);
    TextDrawShowForPlayer(playerid,Reg8);
    SelectTextDraw(playerid,SERVERFARBE);

  • So, so müsste eigentlich alles Funktionieren aber ich würde dir empfehlen, mit [MAX_PLAYERS] hierbei zu arbeiten.
    weil wenn 2Spieler auf dem Server z.B sind, und beide den TextDraw angezeigt bekommen, und der erste auf abbrechen geht ist es bei dem 2ten Spieler auch geschlossen. Daher mit [MAX_PLAYERS] arbeiten.
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(clickedid == Reg2) //Wir fangen indem Fall bei 1 an weil wir ja nicht wollen das 0 anklickbar ist.
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Dein Account wurde nicht gefunden bitte gebe dein gewünschtes Passwort ein.","Spielen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du besitzt ein Account!");
    }
    }
    if(clickedid == Reg4)
    {
    new Spielerdatei[64];
    if(dini_Exists(Spielerdatei))
    {
    SendClientMessage(playerid,ROT,"Du besitzt kein Account!");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Hallo {F50000}%s . {FFFFFF}Dein Account wurde in der Datenbank gefunden. Bitte logge dich ein!","Spielen","Abbrechen");
    }
    }
    if(clickedid == Reg6)
    {
    SendClientMessage(playerid,ROT,"ERROR");
    TextDrawHideForPlayer(playerid,Reg0);
    TextDrawHideForPlayer(playerid,Reg1);
    TextDrawHideForPlayer(playerid,Reg2);
    TextDrawHideForPlayer(playerid,Reg3);
    TextDrawHideForPlayer(playerid,Reg4);
    TextDrawHideForPlayer(playerid,Reg5);
    TextDrawHideForPlayer(playerid,Reg6);
    TextDrawHideForPlayer(playerid,Reg7);
    TextDrawHideForPlayer(playerid,Reg8);
    CancelSelectTextDraw(playerid);
    }
    return 1;
    }

  • Ok danke,
    aber wenn ich meine maus bei "Login" mache kommt das von "Register" .
    Bzw. Wird nur "Register" Pink aufgeleuchtet (SERVERFARBE).
    Ich weiß dass man TextDrawTextSize benutzen soll aber WIE!?
    Wie muss ich das einstellen und WIE geht das bei iPleoMax.