Solucionado -
Hork - 15.03.2016
Solucionado, muchas gracias.
Re: [AYUDA] Codigo de propiedades -
Daniel-92 - 15.03.2016
El mбximo de de un texto en un dialogo es de 4096 y veo tu tienes new PropString[120000]
Re: [AYUDA] Codigo de propiedades -
Hork - 15.03.2016
Lo baje a 4096 y el error sigue.
Respuesta: Re: [AYUDA] Codigo de propiedades -
dannypanda05 - 15.03.2016
Quote:
Originally Posted by Hork
Lo baje a 4096 y el error sigue.
|
Lo que estб diciendo es que ya superaste los 4096 de un diбlogo, aunque le subas solo te muestra hasta esa cantidad >.>
Re: [AYUDA] Codigo de propiedades -
Hork - 15.03.2016
Y como podria hacerlo para que me muestre todas las propiedades? He visto dialogos del mismo tipo (style_list) con muchisimos items.
Respuesta: Re: [AYUDA] Codigo de propiedades -
dannypanda05 - 15.03.2016
Quote:
Originally Posted by Hork
Y como podria hacerlo para que me muestre todas las propiedades? He visto dialogos del mismo tipo (style_list) con muchisimos items.
|
Porque los items no usan tantos carбcteres por lнneas como el tuyo -.-
Usa DIALOG_STYLE_TABLIST_HEADERS para ahorrar espacios con valor, produce y propietarios
Re: [AYUDA] Codigo de propiedades -
lucesita - 15.03.2016
pawn Код:
dcmd_propiedades(playerid,params[]) {
#pragma unused params
new PropString[4096],MensajeProps[128];
strcat(PropString, "Nombre\tValor\tProduce\tPropietario\n");
for(new idcasa; idcasa < CantidadPropiedades; idcasa++)
{
format(MensajeProps,128,"{FDEE00}%s\t{FFFFFF}$%d\t$%d\t{00FFFF}%s\n",Propiedades[idcasa][Nombre], Propiedades[idcasa][Valor], Propiedades[idcasa][Produce], Propiedades[idcasa][Propietario]);
strcat(PropString,MensajeProps);
ShowPlayerDialog(playerid,ListaProps,DIALOG_STYLE_TABLIST_HEADERS,"Propiedades",PropString,"Aceptar","");
}
return 1;
}
Re: [AYUDA] Codigo de propiedades -
Hork - 16.03.2016
Quote:
Originally Posted by lucesita
pawn Код:
dcmd_propiedades(playerid,params[]) { #pragma unused params new PropString[4096],MensajeProps[128]; strcat(PropString, "Nombre\tValor\tProduce\tPropietario\n"); for(new idcasa; idcasa < CantidadPropiedades; idcasa++) { format(MensajeProps,128,"{FDEE00}%s\t{FFFFFF}$%d\t$%d\t{00FFFF}%s\n",Propiedades[idcasa][Nombre], Propiedades[idcasa][Valor], Propiedades[idcasa][Produce], Propiedades[idcasa][Propietario]); strcat(PropString,MensajeProps); ShowPlayerDialog(playerid,ListaProps,DIALOG_STYLE_TABLIST_HEADERS,"Propiedades",PropString,"Aceptar",""); } return 1; }
|
Muchas gracias, solucionado!
Re: [AYUDA] Codigo de propiedades -
SickAttack - 16.03.2016
Quote:
Originally Posted by lucesita
pawn Код:
dcmd_propiedades(playerid,params[]) { #pragma unused params new PropString[4096],MensajeProps[128]; strcat(PropString, "Nombre\tValor\tProduce\tPropietario\n"); for(new idcasa; idcasa < CantidadPropiedades; idcasa++) { format(MensajeProps,128,"{FDEE00}%s\t{FFFFFF}$%d\t$%d\t{00FFFF}%s\n",Propiedades[idcasa][Nombre], Propiedades[idcasa][Valor], Propiedades[idcasa][Produce], Propiedades[idcasa][Propietario]); strcat(PropString,MensajeProps); ShowPlayerDialog(playerid,ListaProps,DIALOG_STYLE_TABLIST_HEADERS,"Propiedades",PropString,"Aceptar",""); } return 1; }
|
Tiene dos fallas eso.
- La linea de "ShowPlayerDialog" deberia ir afuera del bucle. Estas mostrado el dialogo una y otra vez. Y nomas tienes que mostrarlo una sola vez.
- Si no hay ninguna propiedad, el comando no hara nada. Y el primer "strcat" se ejecutara de okis.
Deberia quedar asi (o algo similar):
pawn Код:
dcmd_propiedades(playerid,params[])
{
#pragma unused params
new PropString[4096], MensajeProps[128], bool:initialize = false;
for(new idcasa; idcasa < CantidadPropiedades; idcasa++)
{
format(MensajeProps,128,"{FDEE00}%s\t{FFFFFF}$%d\t$%d\t{00FFFF}%s\n",Propiedades[idcasa][Nombre], Propiedades[idcasa][Valor], Propiedades[idcasa][Produce], Propiedades[idcasa][Propietario]);
strcat(PropString,MensajeProps);
initialize = true;
}
if(initialize)
{
strins(PropString, "Nombre\tValor\tProduce\tPropietario\n", 0);
ShowPlayerDialog(playerid,ListaProps,DIALOG_STYLE_TABLIST_HEADERS,"Propiedades",PropString,"Aceptar","");
}
else
{
SendClientMessage(playerid, -1, "No se encontro nungun propiedad!");
}
return 1;
}
Y por cierto, actualiza a ZCMD o a cualquier otro procesador de comandos que utiliza el CallLocalFunction. :/
Saludos.