[Duda] Porque el Dialog_Style_List No funciona?ї
#1

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;
}
Reply
#2

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;
}
Reply
#3

:$ Me lie mas, solo queria reparar el selecarmas (:
Reply
#4

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 .
Reply
#5

pawn Код:
#define selecarmas 4
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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)