[Ayuda] TextDraw Clickeables
#1

Hola amigos de sa-mp, les vengo a pedir que me ayuden en algo, bien les explicare lo que pasa estoy haciendo un textdraw clickeable en forma de cajero, donde abran opciones de Retirar,Depositar,Transferir, bueno ahora ya tengo hecho el textdraw y todo, pero cuando uso el comando en el cual me mostrarб los textdraw seria /cajero, coloco el comando dicho anteriormente me lo muestra , intento dar click en retirar y no pasa nada, ahora le paso el codigo para ver que es lo que esta mal, espero que me ayuden. Gracias!!

En los new puse los textdraw
pawn Код:
new Text:Pantalla[MAX_PLAYERS];
new Text:CuadroNegroBanco[MAX_PLAYERS];
new Text:Operaciones[MAX_PLAYERS];
new Text:Depositar[MAX_PLAYERS];
new Text:Retirar[MAX_PLAYERS];
new Text:Transferir[MAX_PLAYERS];
new Text:DineroTotal[MAX_PLAYERS];
new Text:Usuario[MAX_PLAYERS];
Ahora le explicare lo de retirar este es el textdraw hecho
pawn Код:
Retirar[playerid] = TextDrawCreate(268.000000, 211.000000, "Retirar");
    TextDrawBackgroundColor(Retirar[playerid], 255);
    TextDrawFont(Retirar[playerid], 2);
    TextDrawLetterSize(Retirar[playerid], 0.599999, 4.299999);
    TextDrawColor(Retirar[playerid], -1);
    TextDrawSetOutline(Retirar[playerid], 1);
    TextDrawSetProportional(Retirar[playerid], 1);
    TextDrawUseBox(Retirar[playerid], 1);
    TextDrawBoxColor(Retirar[playerid], 1471292159);
    TextDrawTextSize(Retirar[playerid], 374.000000, 0.000000);
    TextDrawSetSelectable(Retirar[playerid], true);
Ahora en el callback puse asi.
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(_:clickedid != 65535)//Si el jugador hace click en un textdraw vбlido continua con este mismo.
    {
    if(clickedid == Retirar[playerid])
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    }
    return 1;
    }
el dialogo que mostrara
pawn Код:
case DIALOGO_RETIRAR:{
        if(response){
                if(strval(inputtext) > Informacion[playerid][pBancario]) return ShowPlayerDialog(playerid, CajeroError, DIALOG_STYLE_MSGBOX, "{FFFFFF}Banco Palomino", "{FFFFFF}Se ha producido un error. Ha podido ser causado por:\n\n Que usted no tiene tanto dinero en el banco", "Cerrar", "");
                Informacion[playerid][pBancario] -= strval(inputtext);
                Informacion[playerid][Dinero] += strval(inputtext);
            }
            else
            {
            }
        }
Ahora el comando en el cual me mostrar los textdraw.
pawn Код:
CMD:cajero(playerid, params[]){
        //if(EstaEnUnCajero(playerid)){
            new string[256];
            if(MostrandoCajero[playerid] == 0){
            TextDrawShowForPlayer(playerid, Pantalla[playerid]);
            TextDrawShowForPlayer(playerid, CuadroNegroBanco[playerid]);
            TextDrawShowForPlayer(playerid, Operaciones[playerid]);
            TextDrawShowForPlayer(playerid, Depositar[playerid]);
            TextDrawShowForPlayer(playerid, Retirar[playerid]);
            TextDrawShowForPlayer(playerid, Transferir[playerid]);
            format(string, sizeof(string),      "Total: ~g~$~w~ %d",Informacion[playerid][pBancario]);
            TextDrawSetString(DineroTotal[playerid], Desbug(string));
            TextDrawShowForPlayer(playerid, DineroTotal[playerid]);
           
            format(string, sizeof(string),      "Usuario: %s",NombreJugador(playerid));
            TextDrawSetString(Usuario[playerid], Desbug(string));
            TextDrawShowForPlayer(playerid, Usuario[playerid]);
            MostrandoCajero[playerid] = 1;
            SelectTextDraw(playerid, 0xFF0000FF);
            SendClientMessage(playerid, COLOR_SERVER, "[INFO] Para salir del cajero, usa nuevamente '/cajero'.");
            return 1;
            }
            else{
                TextDrawHideForPlayer(playerid, Pantalla[playerid]);
                TextDrawHideForPlayer(playerid, CuadroNegroBanco[playerid]);
                TextDrawHideForPlayer(playerid, Operaciones[playerid]);
                TextDrawHideForPlayer(playerid, Depositar[playerid]);
                TextDrawHideForPlayer(playerid, Retirar[playerid]);
                TextDrawHideForPlayer(playerid, Transferir[playerid]);
                TextDrawHideForPlayer(playerid, DineroTotal[playerid]);
                TextDrawHideForPlayer(playerid, Usuario[playerid]);
                MostrandoCajero[playerid] = 0;
                CancelSelectTextDraw(playerid);
                return 1;
            }
        //}else SendClientMessage(playerid, COLOR_BLANCO, "[ERROR] Usted no se encuentra en un cajero automбtico.");
        //return 1;
    }
Ahi esta todo puesto amigos, por cierto el define del dialogo de retirar si lo tengo definido, espero que me ayuden gracias de nuevo
Reply
#2

No serнa:

pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == Retirar[playerid])
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    return 1;
    }
Reply
#3

Quote:
Originally Posted by EnzoMetlc
Посмотреть сообщение
No serнa:

pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == Retirar[playerid])
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    return 1;
    }
Ya lo hice como dijiste y nada , el problema es que no sale ni siquiera que lo selecciono nada de eso, solo me sale el puntero para seleccionar pero ni me marca el color cuando selecciono nada de eso, :S no se cual es el error
Reply
#4

pawn Код:
public OnPlayerClickPlayerTextDraw(playerid, Text:clickedid)
{
    if(_:clickedid != 65535)//Si el jugador hace click en un textdraw vбlido continua con este mismo.
    {
    if(clickedid == Retirar[playerid])
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    }
    return 1;
    }
Cambia todo hasta el public por ese

o asi:

pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == Retirar)
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    return 1;
    }
Reply
#5

Quote:
Originally Posted by jose005
Посмотреть сообщение
pawn Код:
public OnPlayerClickPlayerTextDraw(playerid, Text:clickedid)
{
    if(_:clickedid != 65535)//Si el jugador hace click en un textdraw vбlido continua con este mismo.
    {
    if(clickedid == Retirar[playerid])
    {
        ShowPlayerDialog(playerid,DIALOGO_RETIRAR, DIALOG_STYLE_INPUT, "{FFFFFF}Banco de Palomino Creek", "{FFFFFF}·Introduzca la cantidad de dinero que desea retirar:", "Retirar", "Cancelar");
        CancelSelectTextDraw(playerid);
    }
    }
    return 1;
    }
Cambia todo hasta el public por ese
No te entiendo amigo ..
Reply
#6

En el textdraw prueda con la aligment 2. Te serб mбs fбcil.
Reply
#7

Quote:
Originally Posted by adri1
Посмотреть сообщение
En el textdraw prueda con la aligment 2. Te serб mбs fбcil.
Amigo y que tiene que ver el aligment? , me puedes explicar por favor
Reply
#8

tu problema esta aca: TextDrawTextSize(textdraw, 374.000000, 0.000000);
https://sampwiki.blast.hk/wiki/TextDrawTextSize

intenta asi:
TextDrawTextSize(textdraw, 374.000000, 10.000000) o ir aumentando/disminuyendo esas coordenadas si la seleccion es muy grande o chica.

saludos.

EDIT:
ah.. y coloca tambien el SelectTextDraw antes que TextDrawShowForPlayer
Reply
#9

Quote:
Originally Posted by OTACON
Посмотреть сообщение
tu problema esta aca: TextDrawTextSize(textdraw, 374.000000, 0.000000);
https://sampwiki.blast.hk/wiki/TextDrawTextSize

intenta asi:
TextDrawTextSize(textdraw, 374.000000, 10.000000) o ir aumentando/disminuyendo esas coordenadas si la seleccion es muy grande o chica.

saludos.

EDIT:
ah.. y coloca tambien el SelectTextDraw antes que TextDrawShowForPlayer
Edit: ya entendi, ahora deja ver que pasa, osea si es muy grande la seleccion le aumento otro cero asi mira :
TextDrawTextSize(textdraw, 371.000000, 100.000000) .. Asi le coloco?
EDIT2: Muchas gracias otacon, ya lo pude solucionar, .
Reply
#10

Quote:
Originally Posted by Gustavolemon
Посмотреть сообщение
Edit: ya entendi, ahora deja ver que pasa, osea si es muy grande la seleccion le aumento otro cero asi mira :
TextDrawTextSize(textdraw, 371.000000, 100.000000) .. Asi le coloco?
EDIT2: Muchas gracias otacon, ya lo pude solucionar, .
ok de nada, pero no le aumentes tanto, ve aumentando o disminuyendo el 1 osea 10,20,30 etc..
saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)