OnDialogResponse ES
From SA-MP Wiki
(Redirected from OnDialogResponse Es)
Este callback es llamado cuando un jugador presiona alguno de los botones de un dialogo creado con ShowPlayerDialog.
(playerid, dialogid, response, listitem, inputtext[])
| playerid | ID del jugador que responde el dialogo. |
| dialogid | ID del dialogo que fue respondido. Esta id se asigno durante la creacion con ShowPlayerDialog. |
| response | Si el boton presionado fue el primero, su valor es 1, si por el contrario fue el segundo, su valor es 0 |
| listitem | ID del item seleccionado. |
| inputtext[] | El texto que el jugador ingreso en la caja del dialogo, o bien el texto del item seleccionado. |
| Returns | Retornar 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.
- ShowPlayerDialog: Utilizada para la creacion de dialogos.
