TDSetSelectable doesn't work
#1

I don't know what the hell i am doing wrong, when i click on a textdraws nothing happens, and when i press ESC to cancel it it work :S

pawn Код:
public OnPlayerConnect(playerid)
{
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][0], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][1], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][6], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][7], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][8], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][9], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][10], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][11], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][12], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][13], false);
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][14], false);

    StatsTD[playerid][2] = CreatePlayerTextDraw(playerid, 107.555603, 114.986709, "IN CHARACTER");
    PlayerTextDrawLetterSize(....);
    PlayerTextDrawTextSize(....);
    PlayerTextDrawAlignment(....);
    etc...
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][2], true);

    StatsTD[playerid][3] = CreatePlayerTextDraw(playerid, 107.666732, 140.875595, "Out Of Character");
    PlayerTextDrawLetterSize(....);
    PlayerTextDrawTextSize(....);
    PlayerTextDrawAlignment(....);
    etc...
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][3], true);

    StatsTD[playerid][4] = CreatePlayerTextDraw(playerid, 107.777847, 166.764450, "Item3");
    PlayerTextDrawLetterSize(....);
    PlayerTextDrawTextSize(....);
    PlayerTextDrawAlignment(....);
    etc...
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][4], true);

    StatsTD[playerid][5] = CreatePlayerTextDraw(playerid, 107.888961, 192.653259, "Item4");
    PlayerTextDrawLetterSize(....);
    PlayerTextDrawTextSize(....);
    PlayerTextDrawAlignment(....);
    etc...
    PlayerTextDrawSetSelectable(playerid, StatsTD[playerid][5], true);
    return 1;
}
pawn Код:
YCMD:stats(playerid, params[], help)
{
    #pragma unused help
    new string [64];
    format(string,sizeof(string),"IN CHARACTER");
    PlayerTextDrawSetString(playerid, StatsTD[playerid][2],string);
    PlayerTextDrawShow(playerid, StatsTD[playerid][2]);

    format(string,sizeof(string),"Out Of Character");
    PlayerTextDrawSetString(playerid, StatsTD[playerid][3],string);
    PlayerTextDrawShow(playerid, StatsTD[playerid][3]);

    format(string,sizeof(string),"Imovina");
    PlayerTextDrawSetString(playerid, StatsTD[playerid][4],string);
    PlayerTextDrawShow(playerid, StatsTD[playerid][4]);

    format(string,sizeof(string),"Licna Karta");
    PlayerTextDrawSetString(playerid, StatsTD[playerid][5],string);
    PlayerTextDrawShow(playerid, StatsTD[playerid][5]);

    PlayerTextDrawShow(playerid, StatsTD[playerid][0]);
    PlayerTextDrawShow(playerid, StatsTD[playerid][1]);

    SelectTextDraw(playerid, 0xA3B4C5FF);
    return 1;
}
pawn Код:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    if(_:playertextid != INVALID_TEXT_DRAW)
    {
        new string[125];
        if(playertextid == StatsTD[playerid][2]) // InCharacter
        {
            PlayerTextDrawShow(playerid,StatsTD[playerid][6]);
            format(string,sizeof(string),"Posao:~n~~n~Novcanik:~n~~n~Banka:~n~~n~Mobilni:~n~~n~Droga:");
            PlayerTextDrawSetString(playerid, StatsTD[playerid][8],string);
            PlayerTextDrawShow(playerid, StatsTD[playerid][8]);
        }
        else if(playertextid == StatsTD[playerid][3]) // OutOfCharacter
        {
            PlayerTextDrawShow(playerid,StatsTD[playerid][7]);
            format(string,sizeof(string),"Level:~n~~n~Respekti:~n~~n~Odigrani sati:~n~~n~Warn:");
            PlayerTextDrawSetString(playerid, StatsTD[playerid][10],string);
            PlayerTextDrawShow(playerid, StatsTD[playerid][10]);
        }
        else if(playertextid == StatsTD[playerid][4]) // Imovina
        {
            PlayerTextDrawShow(playerid,StatsTD[playerid][9]);
            format(string,sizeof(string),"Kuca:~n~~n~Stan:~n~~n~Vikendica:~n~~n~Biznis:~n~~n~Vozilo:");
            PlayerTextDrawSetString(playerid, StatsTD[playerid][11],string);
            PlayerTextDrawShow(playerid, StatsTD[playerid][11]);
        }
        else if(playertextid == StatsTD[playerid][5]) //Licna Karta
        {
            PlayerTextDrawHide(playerid, StatsTD[playerid][6]);
            PlayerTextDrawHide(playerid, StatsTD[playerid][7]);
            PlayerTextDrawHide(playerid, StatsTD[playerid][8]);
            PlayerTextDrawHide(playerid, StatsTD[playerid][9]);
            PlayerTextDrawHide(playerid, StatsTD[playerid][10]);
            PlayerTextDrawHide(playerid, StatsTD[playerid][11]);
            PlayerTextDrawShow(playerid, StatsTD[playerid][12]);
            PlayerTextDrawShow(playerid, StatsTD[playerid][13]);
            format(string,sizeof(string),"Ime i Prezime / Given name and Surname~n~~n~Godine / Age~n~~n~Pol / Sex~n~~n~Datum izdavanja / Issuing date~n~~n~Vazi do / Valid until");
            PlayerTextDrawSetString(playerid, StatsTD[playerid][14],string);
            PlayerTextDrawShow(playerid, StatsTD[playerid][14]);
        }
    }
    return 1;
}
Reply
#2

Ensure the TextDrawTextSize is big enough.
Reply
#3

keep in mind this order.

pawn Код:
PlayerTextDrawSetSelectable(playerid, Textdrawid, true);

SelectTextDraw(playerid, 0xFFFFFFAA);

PlayerTextDrawShow(playerid, Textdrawid);
Reply
#4

Quote:
Originally Posted by MP2
Посмотреть сообщение
Ensure the TextDrawTextSize is big enough.
pawn Код:
StatsTD[playerid][2] = CreatePlayerTextDraw(playerid, 107.555603, 114.986709, "IN CHARACTER");
PlayerTextDrawLetterSize(playerid, StatsTD[playerid][2], 0.267333, 2.271997);
PlayerTextDrawTextSize(playerid, StatsTD[playerid][2], 191.111175, -4.479996);
pawn Код:
StatsTD[playerid][3] = CreatePlayerTextDraw(playerid, 107.666732, 140.875595, "Out Of Character");
PlayerTextDrawLetterSize(playerid, StatsTD[playerid][3], 0.201999, 2.316797);
PlayerTextDrawTextSize(playerid, StatsTD[playerid][3], 191.111175, -4.479996);
pawn Код:
StatsTD[playerid][4] = CreatePlayerTextDraw(playerid, 107.777847, 166.764450, "Imovina");
PlayerTextDrawLetterSize(playerid, StatsTD[playerid][4], 0.267333, 2.271997);
PlayerTextDrawTextSize(playerid, StatsTD[playerid][4], 191.111175, -4.479996);
pawn Код:
StatsTD[playerid][5] = CreatePlayerTextDraw(playerid, 107.888961, 192.653259, "Licna Karta");
PlayerTextDrawLetterSize(playerid, StatsTD[playerid][5], 0.267333, 2.271997);
PlayerTextDrawTextSize(playerid, StatsTD[playerid][5], 191.111175, -4.479996);


@cesar_******, I don't understand what you want to say
Reply
#5

There you are making only the mouse To click in a single position.

PlayerTextDrawTextSize

Note: This function defines the clickable area for use with PlayerTextDrawSetSelectable, whether a box is shown or not.
Reply
#6

If I'm not mistaken, clickable textdraws need to have a box behind them. MP2 also mentioned something about the textdraw's text size, generally I set the Y value to 10.0 or 20.0.
Reply
#7

They don't need a box. Also 10 is very small considering the canvas is 640 wide (IMO). I personally start at about 50.
Reply
#8

Thanks guys very much! It's work
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)