[Ajuda] Click em Textdraw ...
#1

Bom eu queria um return em textdraw de click .. mas nao consegui alguem me pode ajudar ? pff ...

pawn Код:
new Text:gTextDraw;

public OnGameModeInit()
{
    gTextDraw = TextDrawCreate(10.000000, 141.000000, "MyTextDraw");
    TextDrawTextSize(gTextDraw,60.000000, 20.000000);
    TextDrawAlignment(gTextDraw,0);
    TextDrawBackgroundColor(gTextDraw,0x000000ff);
    TextDrawFont(gTextDraw,1);
    TextDrawLetterSize(gTextDraw,0.250000, 1.000000);
    TextDrawColor(gTextDraw,0xffffffff);
    TextDrawSetProportional(gTextDraw,1);
    TextDrawSetShadow(gTextDraw,1);
    TextDrawSetSelectable(gTextDraw, 1);
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
        if (!strcmp("/cmd", cmdtext, true))
        {
            TextDrawShowForPlayer(playerid, gTextDraw);
            SelectTextDraw(playerid, 0xFF4040AA);
            return 1;
        }
        return 0;
}
#define fghj 43
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(!clickedid) return TextDrawShowForPlayer(playerid, gTextDraw), SelectTextDraw(playerid, 0xFF4040AA);
    if(clickedid == gTextDraw)
    {
        new Msg[1000];
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        ShowPlayerDialog(playerid, fghj, DIALOG_STYLE_MSGBOX, "TEXTOOO", Msg, "Ok", "Fechar");
    }
    return 1;
}
Reply
#2

To tentando decifrar oq vc quer..

Pelo que eu percebi (pelo codigo) falta esconderas textdraws, eh isso q vc ker?
Reply
#3

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
To tentando decifrar oq vc quer..

Pelo que eu percebi (pelo codigo) falta esconderas textdraws, eh isso q vc ker?
nao mano, o cara clica no textdraw ne ? entгo apaga os textdraw e abre o dialog, e quando ele clicar 'Ok' e em 'Cancelar' voltar para o textdraw ...
Reply
#4

Entao eh isso mesmo.

"return" eh para parar a execucao do um codigo e nao para desfazer uma acao

Para esconder a textdraw, use o inverso de mostrar (show): esconder (hide):
https://sampwiki.blast.hk/wiki/TextDrawHideForPlayer

Ficara da seguinte maneira:
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == gTextDraw)
    {
        TextDrawHideForPlayer(playerid, gTextDraw);
        new Msg[1000];
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        ShowPlayerDialog(playerid, fghj, DIALOG_STYLE_MSGBOX, "TEXTOOO", Msg, "Ok", "Fechar");
    }
    return 1;
}
Reply
#5

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Entao eh isso mesmo.

"return" eh para parar a execucao do um codigo e nao para desfazer uma acao

Para esconder a textdraw, use o inverso de mostrar (show): esconder (hide):
https://sampwiki.blast.hk/wiki/TextDrawHideForPlayer

Ficara da seguinte maneira:
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == gTextDraw)
    {
        TextDrawHideForPlayer(playerid, gTextDraw);
        new Msg[1000];
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        format(Msg, 1000, "%sTEXTOOO\n", Msg);
        ShowPlayerDialog(playerid, fghj, DIALOG_STYLE_MSGBOX, "TEXTOOO", Msg, "Ok", "Fechar");
    }
    return 1;
}
acho que vc nao intendeu .. isso eu sei fera. eu quero й que quando ele acabar de ver o dialog, e ele apertar 'esc' ou 'ok' ou 'fechar' voltar ao's textdraw's

textdraws'
V
TextDrawShowForPlayer(playerid, gTextDraw);
SelectTextDraw(playerid, 0xFF4040AA);
Reply
#6

pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == gTextDraw)
    {
    new Msg[100];
    format(Msg, 1000, "%sTEXTOOO\n", Msg);
    format(Msg, 1000, "%sTEXTOOO\n", Msg);
    ShowPlayerDialog(playerid, fghj, DIALOG_STYLE_MSGBOX, "TEXTOOO", Msg, "Ok", "Fechar");
    }else{
        TextDrawShowForPlayer(playerid, gTextDraw);
        SelectTextDraw(playerid, 0xFF4040AA);
        }
        return 1;
}
Isso ?
Reply
#7

Quote:
Originally Posted by CharlieBrown
Посмотреть сообщение
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == gTextDraw)
    {
    new Msg[100];
    format(Msg, 1000, "%sTEXTOOO\n", Msg);
    format(Msg, 1000, "%sTEXTOOO\n", Msg);
    ShowPlayerDialog(playerid, fghj, DIALOG_STYLE_MSGBOX, "TEXTOOO", Msg, "Ok", "Fechar");
    }else{
        TextDrawShowForPlayer(playerid, gTextDraw);
        SelectTextDraw(playerid, 0xFF4040AA);
        }
        return 1;
}
Isso ?
nao vai, pq tem mais else por baixo ...
Reply
#8

Quote:
Originally Posted by JoaoMonteiro452
Посмотреть сообщение
nao vai, pq tem mais else por baixo ...
Sу remover, testei aqui em um gm com base bare, deu certo.
Reply
#9

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == fghj) {
        TextDrawShowForPlayer(playerid, gTextDraw);
        SelectTextDraw(playerid, 0xFF4040AA);
    }
    return 1;
}
Reply
#10

Quote:
Originally Posted by CharlieBrown
Посмотреть сообщение
Sу remover, testei aqui em um gm com base bare, deu certo.
tirei os de baixo, mas depois quando abre o dialog, ao apertas 'Ok' ou 'Fechar' some tudo... e ainda pos o esle e nao foi manda ae a base pode?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)