SA-MP Forums Archive
Como se hace un dialog enorme lo mбs optimizado posible? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Como se hace un dialog enorme lo mбs optimizado posible? (/showthread.php?tid=535306)



Como se hace un dialog enorme lo mбs optimizado posible? - xDarkuzSx - 03.09.2014

Hola bueno yo tengo un dialog de /comandos que hice de esta forma:

pawn Код:
if(strcmp("/Comandos", cmdtext, true, 10) == 0)
    {
    new CMDS[2000];
    strcat(CMDS, "{"COLOR_CMDS"}* /Comprar {FFFFFF}- Usted ve las armas disponibles y armaduras.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Autos {FFFFFF}- Usted ve los autos disponibles.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Items {FFFFFF}- Muestra objetos adicionales.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Ir {FFFFFF}- Usted puede ir hacia un jugador (Ir ID).\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Creditos {FFFFFF}- Ver los creditos del servidor.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Reglas {FFFFFF}- Usted conoce las reglas del servidor.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Duda {FFFFFF}- Le envias una consulta a los moderadores online.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Nombre {FFFFFF}- Usted se cambia el nombre sin perder nada.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Pm {FFFFFF}- Usted mada un mensaje privado hacia un jugador.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Modo {FFFFFF}- Usted ve un pequeсo tutorial de informaciуn.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Hola {FFFFFF}- Usted saluda a todos los jugadores.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Adios {FFFFFF}- Se utiliza para enviar una consulta a los administradores.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Song - /MP3 {FFFFFF}- Puedes escuchar musica de distintos generos.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /stop - /StopMP3 {FFFFFF}- Detienes el AudioStream.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /DarDinero {FFFFFF}- Le regalas dinero a un jugador.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /pms {FFFFFF}- Bloqueas / Desbloqueas tus mensajes privados.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Suicidio {FFFFFF}- Usted se mata automaticamente.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Acciones {FFFFFF}- Ver las acciones disponibles.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Lucha - /Pelea {FFFFFF}- Cambias el estilo lucha / pelear.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Laser (color){FFFFFF}- Activa el laser / Cambia de color el laser.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /RVIP {FFFFFF}- Te otorga nivel vip si cuentas con el score requerido.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /XXX {FFFFFF}- XXXXXXXXXXXXXXXXXX.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Pelea {FFFFFF}- Menu para cambiar tu stilo de pelea.\n");
    strcat(CMDS, "{"COLOR_CMDS"}* /Comandos2 {FFFFFF}- Mas comandos disponibles.");
    ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_MSGBOX, "{FFFF00}* [RZ] Comandos: {7A7AFF}Comando {FFFFFF}-{7A7AFF} Descripciуn.", CMDS, "Mas >>", "x");
    return 1;
    }
queria saber si es la manera mбs correcta de hacer un dialog enorme,
Quiero hacer uno de ese tipo de grande para consultar los integrantes de los clanes con MySQL pero esa es otra historia.

Conte los caracteres en contadordecaracteres.com y llegan a 2k
Bueno gracias D:


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - Adoniiz - 03.09.2014

pawn Код:
ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_MSGBOX, "{FFFF00}* [RZ] Comandos: {7A7AFF}Comando {FFFFFF}-{7A7AFF} Descripciуn.",
"/comando 1 - hace esto \
\n/comando 2 - hace esto \
\n/comando 3 - hace esto"
, "Aceptar", "Cancelar");



Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - [J]ulian - 03.09.2014

Esa es la mejor manera, segъn leн una vez.

Tambiйn se puede hacer con \ al final de la linea y hacer un salto de linea pero leн a ****** (si mal no recuerdo) que no era recomendable hacer eso.


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - xDarkuzSx - 03.09.2014

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Esa es la mejor manera, segъn leн una vez.

Tambiйn se puede hacer con \ al final de la linea y hacer un salto de linea pero leн a ****** (si mal no recuerdo) que no era recomendable hacer eso.
Me perdi, la mejor manera es la que publico Adoniiz o la mнa?

Gracias a los 2 C:


Re: Como se hace un dialog enorme lo mбs optimizado posible? - Daniel-92 - 03.09.2014

Pero si son datos dinбmicos no vas a usar ninguna de esas vas a usar un bucle e ir aсadiendo cada mimbro con strcat, para dialogs muy grande ponele un boton que diga siguiente y asi lo divides en 2.


Re: Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - admantis - 03.09.2014

Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
pawn Код:
ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_MSGBOX, "{FFFF00}* [RZ] Comandos: {7A7AFF}Comando {FFFFFF}-{7A7AFF} Descripciуn.",
"/comando 1 - hace esto \
\n/comando 2 - hace esto \
\n/comando 3 - hace esto"
, "Aceptar", "Cancelar");
Esto es correcto, pero en diбlogos muy largos no va a compilar.

En tu caso, es mejor contar la cantidad de caracteres (como estб ahora). De cualquier modo, ese cуdigo no debe causar ningъn tipo de lag en lo absoluto.


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - Adoniiz - 03.09.2014

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Esa es la mejor manera, segъn leн una vez.

Tambiйn se puede hacer con \ al final de la linea y hacer un salto de linea pero leн a ****** (si mal no recuerdo) que no era recomendable hacer eso.
Nunca tuve problema, aunque no se puede pasar mas de 2048 caracteres. (el limite pues).


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - Glimma - 03.09.2014

https://sampforum.blast.hk/showthread.php?tid=295049


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - xDarkuzSx - 03.09.2014

Hola, Gracias a todos, creo que harй lo que dijo admantiz, primero obtendre el nombre de los clanes con MySQL y los colocare en un dialogo en modo de lista, al seleccionar uno utilizare el y_dloag tambiйn, gracias de nuevo :Р


Respuesta: Como se hace un dialog enorme lo mбs optimizado posible? - OTACON - 05.09.2014

pawn Код:
new Dialog[][]={
    {"soy un texto"},
    {"soy un texto"},
    {"soy un texto"},
    {"soy un texto"},
    {"soy un texto"}
    /*ETC...*/
};

new CMDS[2000], DATA[144];
for(new index=0; index< sizeof(Dialog); index++){
    format(DATA,sizeof(DATA),"%s\n",Dialog[index]);
    strcat(CMDS, DATA);
}
ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_MSGBOX, "titulo dialog:", CMDS, "Aceptar", "Cancelar");