OnDialogResponse ES

From SA-MP Wiki

(Redirected from OnDialogResponse Es)
Jump to: navigation, search



Este callback es llamado cuando un jugador presiona alguno de los botones de un dialogo creado con ShowPlayerDialog.


Parametros:
(playerid, dialogid, response, listitem, inputtext[])
playeridID del jugador que responde el dialogo.
dialogidID del dialogo que fue respondido. Esta id se asigno durante la creacion con ShowPlayerDialog.
responseSi el boton presionado fue el primero, su valor es 1, si por el contrario fue el segundo, su valor es 0
listitemID del item seleccionado.
inputtext[]El texto que el jugador ingreso en la caja del dialogo, o bien el texto del item seleccionado.


ReturnsRetornar 0 en este callback, pasara el dialogo a otro script en el caso de que se encontrara ningun codigo que coincida (ID) dentro del callback de tu gamemode.


Ejemplo: (Cuando se tienen muy pocos dialogos)

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 4)
    {
        if(!response)return SendClientMessage(playerid, 0xFF0000FF, "Cancelado");
        new string[128];
        format(string, 128, "Seleccionaste el item %i de la lista", listitem);
        return SendClientMessage(playerid, 0xFFFF00FF, string);
    }
    return 0;
}

Ejemplo 2: (Cuando se tienen muchos dialogos)

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 1://dialogo cuyo id es 1
        {
            if(!response)return SendClientMessage(playerid, 0xFF0000FF, "Cancelado");
            switch(listitem)//buscamos el item seleccionado
            {
                case 0://item 1
                {
                    //Lo que sucede al seleccionar el 1º item del dialogo ID:1.
                }
                case 1://item 2
                {
                    //Lo que sucede al seleccionar el 2º item del dialogo ID:1.
                }
                case 2://item 3
                {
                    //Lo que sucede al seleccionar el 3º item del dialogo ID:1.
                }
                //Aca podemos continuar agregando mas items, segun los que tenga el dialogo.
            }
        }
        case 2://dialogo cuyo id es 2
        {
            if(!response)return SendClientMessage(playerid, 0xFF0000FF, "Cancelado");
            new name[MAX_PLAYER_NAME], string[128];
            GetPlayerName(playerid, name, MAX_PLAYER_NAME);
            format(string, 128, "El jugador %s(%i) dice %s", name, playerid, inputtext);
            return SendClientMessageToAll(0x00FF00FF, string);
        }
        case 3://dialogo cuyo id es 3
        {
            if(!response)return SendClientMessage(playerid, 0xFF0000FF, "Cancelado");
            if(GetPlayerMoney(playerid) < 1000)return SendClientMessage(playerid, 0xFF0000FF, "Error: Necesitas $1000 para curarte.");
            SetPlayerHealth(playerid, 100);
            GivePlayerMoney(playerid, -1000);
            return SendClientMessage(playerid, 0x00FF00FF, "Server: Has sido curado.");
        }
        //Aca podemos continuar agregando mas dialogos.
    }
    return 0;//Si retornas 1, el callback no seguira siendo ejecutado en otros filterscripts.
}

Funciones relacionadas

Puede que alguna de las siguientes funciones sea util en tu script, ya que estan relacionadas de alguna manera.

Personal tools