[Duda] Porque el Dialog_Style_List No funciona?ї -
DerxonTM - 04.01.2013
Muy buenas gente de Samp, hoy he echo un dialog de bebidas pero no cumple la funcion. Por ejemplo, si fuera dar armas no las daria. Os dejo todos los codigos (:
Код:
#define selecarmas 4
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/bebidas", true))
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Que Desea ?", "Bebidas ($1)\nCerveza ($2)\nVino ($3)", "Comprar", "Cancelar");
}
return 1;
}
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 4)
{
if(response)// Si se pulsa el primer botуn.
{
switch(dialogid)// Si sуlo tiene un cuadro de diбlogo, entonces esto no es necesario, pero es mбs Organizado para cuando se implementan mбs cuadros de diбlogo.
{
case 1:// Nuestro dialogo
{
switch(listitem)// Comprueba Si a Sido Seleccionado
{
case 0:// El Primer Boton Incluido
{
if(GetPlayerMoney(playerid) < 1) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene Suficiente Dinero Para pagar Esta Bebida!");//El GetPlayerMoney Significa que mira el Dinero al Jugador. <1 Esto Significa Que Debe Tener mas de 1 Dolar
GivePlayerMoney(playerid, -1);//El GivePLayerMoney -1 Significa Que le Quita 1 Dolar
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);// Esto es una animacion Despues les paso el link de las animaciones
}
case 1: // Esto es el segundo boton
{
if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero.");
GivePlayerMoney(playerid, -2);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
}
case 2: // El Tercer boton
{
if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "No Tiene dinero Para Pagar Esta bebida");
GivePlayerMoney(playerid, -3);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
}
}
}
}
}
}
return 1;
}
Os dejare todo la Callback para que mireis si hay algun mal cierre o algo.
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Registro)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256],string[200];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "Registro", "{FF6600}Welcome To iZombisGaming !{FF6600}. Enter a password to register your account", "Register", "Cancel");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
dini_Create(archivo);
dini_Set(archivo, "Usuario", nombrejugador);
dini_Set(archivo, "Contraseсa", inputtext);
CrearCuenta(playerid);
format(string,sizeof(string),"Contraseсa: %s Ingrese Su Contraseсa",inputtext);
ShowPlayerDialog(playerid, Logueo, DIALOG_STYLE_PASSWORD, "iZombisGaming", string, "Confirmar", "Salir");
}
if (dialogid == Logueo)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256], comprobante[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Logueo, DIALOG_STYLE_PASSWORD, "iZombisGaming ", "{FF6600}Welcome Back To{FF6600}iZombisGaming !{FF6600}. Insert your Password To Loggin", "Login", "Cancel");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
format(comprobante, sizeof(comprobante), "%s", dini_Get(archivo, "Contraseсa"));
if (!strcmp (inputtext, comprobante))
{
CargarDatos(playerid);
}
else
{
ShowPlayerDialog(playerid, 1213, DIALOG_STYLE_MSGBOX, "Samp-Script Freeroam", "La Contraseсa No Coincide Con El Nombre!", "Aceptar", "");
ActualizarCuenta(playerid);
Kick(playerid);
}
}
if(dialogid == 4)
{
if(response)// Si se pulsa el primer botуn.
{
switch(dialogid)// Si sуlo tiene un cuadro de diбlogo, entonces esto no es necesario, pero es mбs Organizado para cuando se implementan mбs cuadros de diбlogo.
{
case 1:// Nuestro dialogo
{
switch(listitem)// Comprueba Si a Sido Seleccionado
{
case 0:// El Primer Boton Incluido
{
if(GetPlayerMoney(playerid) < 1) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene Suficiente Dinero Para pagar Esta Bebida!");//El GetPlayerMoney Significa que mira el Dinero al Jugador. <1 Esto Significa Que Debe Tener mas de 1 Dolar
GivePlayerMoney(playerid, -1);//El GivePLayerMoney -1 Significa Que le Quita 1 Dolar
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);// Esto es una animacion Despues les paso el link de las animaciones
}
case 1: // Esto es el segundo boton
{
if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero.");
GivePlayerMoney(playerid, -2);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
}
case 2: // El Tercer boton
{
if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "No Tiene dinero Para Pagar Esta bebida");
GivePlayerMoney(playerid, -3);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
}
}
}
}
}
}
return 1;
}
Respuesta: [Duda] Porque el Dialog_Style_List No funciona?ї -
OTACON - 04.01.2013
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/bebidas", true))
{
ShowPlayerDialog(playerid, selecarmas, DIALOG_STYLE_LIST, "Que Desea ?", "Bebidas ($1)\nCerveza ($2)\nVino ($3)", "Comprar", "Cancelar");
return 1;
}
return 0; //aca va 0
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
//--
case selecarmas:
{
if(response)
{
switch(listitem)
{
case 0:// El Primer Boton Incluido
{
if(GetPlayerMoney(playerid) < 1) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene Suficiente Dinero Para pagar Esta Bebida!");//El GetPlayerMoney Significa que mira el Dinero al Jugador. <1 Esto Significa Que Debe Tener mas de 1 Dolar
GivePlayerMoney(playerid, -1);//El GivePLayerMoney -1 Significa Que le Quita 1 Dolar
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);// Esto es una animacion Despues les paso el link de las animaciones
}
case 1: // Esto es el segundo boton
{
if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero.");
GivePlayerMoney(playerid, -2);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
}
case 2: // El Tercer boton
{
if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "No Tiene dinero Para Pagar Esta bebida");
GivePlayerMoney(playerid, -3);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
}
}
}
else
{
//Aca Tu Funcion al cansellar el dialog
return 1;
}
}
//--
case Registro:
{
if(response)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256],string[200];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "Registro", "{FF6600}Welcome To iZombisGaming !{FF6600}. Enter a password to register your account", "Register", "Cancel");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
dini_Create(archivo);
dini_Set(archivo, "Usuario", nombrejugador);
dini_Set(archivo, "Contraseсa", inputtext);
CrearCuenta(playerid);
format(string,sizeof(string),"Contraseсa: %s Ingrese Su Contraseсa",inputtext);
ShowPlayerDialog(playerid, Logueo, DIALOG_STYLE_PASSWORD, "iZombisGaming", string, "Confirmar", "Salir");
}
else
{
//Aca Tu Funcion al cancelar el dialog
return 1;
}
}
//--
case Logueo:
{
if(response)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256], comprobante[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Logueo, DIALOG_STYLE_PASSWORD, "iZombisGaming ", "{FF6600}Welcome Back To{FF6600}iZombisGaming !{FF6600}. Insert your Password To Loggin", "Login", "Cancel");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
format(comprobante, sizeof(comprobante), "%s", dini_Get(archivo, "Contraseсa"));
if (!strcmp (inputtext, comprobante))
{
CargarDatos(playerid);
}
else
{
//Aca Tu Funcion al escribir mal en el dialog
return 1;
}
}
else
{
//Aca Tu Funcion al cancelar el dialog
return 1;
}
}
//--
}
return 1;
}
AW: Respuesta: [Duda] Porque el Dialog_Style_List No funciona?ї -
DerxonTM - 04.01.2013
:$ Me lie mas, solo queria reparar el selecarmas (:
Respuesta: AW: Respuesta: [Duda] Porque el Dialog_Style_List No funciona?ї -
OTACON - 04.01.2013
Quote:
Originally Posted by DerxonTM
:$ Me lie mas, solo queria reparar el selecarmas (:
|
¬¬ , con eso lo repararas, tenias 2 veces el miso cal, en OnPlayerCommandText tenias el return en 1 no te ivan a andar ningun comando , tenias 2 veces dialogid .
Respuesta: [Duda] Porque el Dialog_Style_List No funciona?ї -
TiNcH010 - 04.01.2013
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/bebidas", true))
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Que Desea ?", "Bebidas ($1)\nCerveza ($2)\nVino ($3)", "Comprar", "Cancelar");
return 1;
}
return 0;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
case selecarmas:
{
if ( response == 1 )
{
switch ( listitem )
{
case 0:
{
if(GetPlayerMoney(playerid) < 1) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene Suficiente Dinero Para pagar Esta Bebida!");
GivePlayerMoney(playerid, -1);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
}
case 1:
{
if(GetPlayerMoney(playerid) < 2) return SendClientMessage(playerid, 0xFFFFFF, "Usted No Tiene suficiente Dinero.");
GivePlayerMoney(playerid, -2);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
}
case 2:
{
if(GetPlayerMoney(playerid) < 3) return SendClientMessage(playerid, 0xFFFFFF, "No Tiene dinero Para Pagar Esta bebida");
GivePlayerMoney(playerid, -3);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
}
}
}
}
else
{
// Si presiona cancelar...
}
return 1;
}