[ayuda]dialog y textos flotantes. -
francox_33 - 23.07.2014
Hola bueno soy nuevo, y estoy empezando a hacer dialog, bueno tengo este problema:
pawn Код:
if ( response )
{
switch ( dialogid )
{
case 1 :
{
switch ( listitem )
{
case 0 : ShowPlayerDialog( playerid, 2, DIALOG_STYLE_LIST,"Desert Eagle/n9MM/n9MM Silenciada","Aceptar","cancelar");
case 1 : ShowPlayerDialog( playerid, 3, DIALOG_STYLE_LIST,"MP5/nTec/nMicro","aceptar",·"cancarlar");
case 2 : ShowPlayerDialog( playerid, 4, DIALOG_STYLE_LIST,"m4/nak-47","Aceptar","Cancelar");
}
}
case 2:
{
if ( listitem == 0 )
{
GivePlayerWeapon(playerid, 24, 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Desert!");
}
if ( listitem == 1 )
{
GivePlayerWeapon(playerid, 22 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su 9mm!");
}
if ( listitem == 2 )
{
GivePlayerWeapon(playerid, 23 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su 9mm silenciada!");
}
if ( listitem == 3 )
{
GivePlayerWeapon(playerid, 29 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su MP5!");
}
if ( listitem == 4 )
{
GivePlayerWeapon(playerid, 32 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Tec!");
}
if ( listitem == 5 )
{
GivePlayerWeapon(playerid, 28 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Micro!");
}
if ( listitem == 6 )
{
GivePlayerWeapon(playerid, 31 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su M4!");
}
if ( listitem == 7 )
{
GivePlayerWeapon(playerid, 30, 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su AK-47!");
}
}
}
return 1;
}
Me tiran estos errores:
Y lo otro es como poner textos flotantes, es decir por ejemplo en la puerta de un lugar diga "Escribe /entrar para ingresar al sitio" o cosas asн. Espero que me puedan ayudar, saludos.
Re: [ayuda]dialog. -
chusothe41 - 23.07.2014
Para hacerlo mas visual por favor... Cambia [CODE][\CODE] por [PAWN][\PAWN]
Re: [ayuda]dialog. -
YazukiAkira - 23.07.2014
Tus problemas estaban en los dialogos que creaste.
pawn Код:
case 1 : ShowPlayerDialog( playerid, 3, DIALOG_STYLE_LIST,"MP5/nTec/nMicro","aceptar",·"cancarlar"); // Aqui tienes un "·" antes de la comilla de cancarlar. Tambien te falta un parametro que es el titulo del dialogo.
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (response)
{
switch (dialogid)
{
case 1:
{
switch (listitem)
{
case 0: ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "ARMAS", "Desert Eagle/n9MM/n9MM Silenciada", "Aceptar", "Cancelar");
case 1: ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, "ARMAS", "MP5/nTec/nMicro", "Aceptar", "Cancelar");
case 2: ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "ARMAS", "m4/nak-47", "Aceptar", "Cancelar");
}
}
case 2:
{
if (listitem == 0)
{
GivePlayerWeapon(playerid, 24, 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Desert!");
}
if (listitem == 1)
{
GivePlayerWeapon(playerid, 22 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su 9mm!");
}
if (listitem == 2)
{
GivePlayerWeapon(playerid, 23 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su 9mm silenciada!");
}
if (listitem == 3)
{
GivePlayerWeapon(playerid, 29 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su MP5!");
}
if (listitem == 4)
{
GivePlayerWeapon(playerid, 32 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Tec!");
}
if (listitem == 5)
{
GivePlayerWeapon(playerid, 28 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su Micro!");
}
if (listitem == 6)
{
GivePlayerWeapon(playerid, 31 , 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su M4!");
}
if (listitem == 7)
{
GivePlayerWeapon(playerid, 30, 9999);
SendClientMessage(playerid, COLOR_YELLOW, "Disfrute de su AK-47!");
}
}
}
}
return 1;
}
Re: [ayuda]dialog. -
francox_33 - 23.07.2014
Muchas gracias, ya no me aparece el error, solo que en el juego me pasa esto:
Respuesta: [ayuda]dialog. -
Juance - 23.07.2014
Porque las barras la puso para el otro lado. Siempre que hagas una barra, proba de presionar Alt Gr + la tecla que estб debajo del Esc.
\ ← esa es la barra
Re: [ayuda]dialog. -
francox_33 - 23.07.2014
Muchas gracias, ahora lo que me pasa es que la primer categorнa de armas anda bien pero el resto no, no me pone el arma ni el mensaje.
Re: [ayuda]dialog. -
francox_33 - 23.07.2014
Mira ahora quise hacer otro en el mismo callback y me aparece este error:
pawn Код:
C:\Users\Nestor\Desktop\Alci
's IMG Editor 1.5 ([url]www.mods-gtasa.blogspot.com)\Server\gamemodes\prueba.pwn(1169[/url]) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\Nestor\Desktop\Alci's IMG Editor
1.5 ([url
]www.mods-gtasa.blogspot.com
)\Server\gamemodes\prueba.pwn
(1169[/url
] -- 1170) : error 029
: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright
(c
) 1997-2006, ITB CompuPhase
2 Errors.
Este es el script (los mensajes aun los tengo que modificar pero no creo que sea eso):
pawn Код:
if (response)
{
switch (dialogid)
{
case 1:
{
switch (listitem)
{
if (listitem == 0)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_NORMAL);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
if (listitem == 1)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
if (listitem == 2)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
if (listitem == 3)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
if (listitem == 4)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
if (listitem == 5)
{
SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW);
SendClientMessage(playerid,-1,"Cambiaste tu estilo de pelea a {00FF40}boxeo {FFFFFF}para volver al estilo de pelea normal pon {FFFF00}/estilos.");
}
}
}
}
return 1;
}
Respuesta: [ayuda]dialog. -
Alvaro89 - 23.07.2014
Te explico como es. Primero definimos el dialogo
PHP код:
#define Arma 100 //Esto sirve para controlar los dialogos asi no te confundis y tenes varios dialogos con el mismo numero
Luego el comando
PHP код:
CMD:armas(playerid, params[])
{
ShowPlayerDialog(playerid, Armas, DIALOG_STYLE_LIST, "Lista de Packs", "Texto1\nTexto2\nTexto3", "Ok", "Cancelar");
return 1;
}
Explicacion:
ShowPlayerDialog(playerid, Armas, DIALOG_STYLE_LIST, "Lista de armas"
Armas: Es el numero q le asigne al #Define
DIALOG_STYLE_LIST: Aparecera en forma de Lista.
Lista de Packs: es el nombre q aparece en la cabeza de la box.
Ahora para q aparezca un texto debajo de otro texto, tienes q usar "/n"(sin comillas)
por ejemplo
PHP код:
ShowPlayerDialog(playerid, Armas, DIALOG_STYLE_LIST, "Lista de Packs", "Texto1\nTexto2\nTexto3", "Ok", "Cancelar");
Ahora vamos al
public OnDialogResponse
PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Armas)//comienza el dialogo
{
if(response)
{
if(listitem == 0) //corresponde al Texto 1
{
SendClientMessage(playerid,Color_No,"Hola, Soy el texto 1");
//agregar mas funciones como armas o lo q quieras
}
if(listitem == 1) //corresponde al Texto 2
{
SendClientMessage(playerid,Color_No,"Hola, Soy el texto 2");
//agregar mas funciones como armas o lo q quieras
}
if(listitem == 2) //corresponde al Texto 3
{
SendClientMessage(playerid,Color_No,"Hola, Soy el texto 3");
//agregar mas funciones como armas o lo q quieras
}
}
}//Finaliza el dialogo
return 1;
}