Optimizar cуdigo. -
dannypanda05 - 04.03.2016
Tengo un sistema de clanes por SqLite en la cual tiene una funciуn de buscar los miembros de un clan, el problema aquн es que reescribe la bъsqueda por cada una que encuentre їno? y la otra es que debo usar variables con arrays muy grandes como str[1250], str3[1250], por lo que eh limitado los miembros de un clan, їAlguna otra forma de hacer el cуdigo mбs rбpido y limpio? les dejo como lo tengo:
PHP код:
case DIALOG_VERMIEMBROSCLAN:
{
if(response)
{
new Query[256], DBResult: qresult;
new count = 0, value[20], Field[25], str[1250], str3[1250];
new MiInfoNick[25], MiInfoKill, MiInfoDeath;
format(Query, sizeof(Query), "SELECT * FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
qresult = db_query(ZLDB, Query);
count = db_num_rows(qresult);
for(new a=0;a<count;a++)
{
db_get_field_assoc(qresult, "Nick", Field, 25); format(MiInfoNick,25,"%s",Field);
db_get_field_assoc(qresult, "Ks", value, 5); MiInfoKill = strval(value);
db_get_field_assoc(qresult, "Dhs", value, 5); MiInfoDeath = strval(value);
format(string2,sizeof(string2),"%d\t%s\t%0.2f",a+1,MiInfoNick,Float:MiInfoKill/Float:MiInfoDeath);
format(str,sizeof(str),"%s%s\n",str,string2);
db_next_row(qresult);
}
db_free_result(qresult);
format(str3,sizeof(str3),"#\tNick\tKdr\n%s",str);
ShowPlayerDialog(playerid,DIALOG_SINUSO, DIALOG_STYLE_TABLIST_HEADERS,"-§- Miembros del clan -§-",str3,"Aceptar","");
PlayerPlaySound(playerid,1139,0.0,0.0,0.0);
}
}
Re: Optimizar cуdigo. -
Daniel-92 - 04.03.2016
PHP код:
case DIALOG_VERMIEMBROSCLAN:
{
if(response)
{
new DBResult:qresult;
new count=0,string[128],
format(string, sizeof(string), "SELECT Nick,Ks,Dhs FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
qresult = db_query(ZLDB, string);
count = db_num_rows(qresult);
if(count > 0)
{
new final_string[1280],MiInfoNick[MAX_PLAYER_NAME],MiInfoKill,MiInfoDeath;
strcat(final_string,"#\tNick\tKdr\n%s");
for(new a=0;a<count;a++)
{
db_get_field_assoc(qresult, "Nick",MiInfoNick,sizeof MiInfoNick);
db_get_field_assoc(qresult, "Ks",string,sizeof string);
MiInfoKill = strval(string);
db_get_field_assoc(qresult, "Dhs",string,sizeof string);
MiInfoDeath = strval(string);
format(string,sizeof(string),"%d\t%s\t%0.2f",a+1,MiInfoNick,float(MiInfoKill)/float(MiInfoDeath));
strcat(final_string,string);
db_next_row(qresult);
}
ShowPlayerDialog(playerid,DIALOG_SINUSO, DIALOG_STYLE_TABLIST_HEADERS,"-§- Miembros del clan -§-",final_string,"Cerrar","");
PlayerPlaySound(playerid,1139,0.0,0.0,0.0);
}
db_free_result(qresult);
}
}
Respuesta: Optimizar cуdigo. -
dannypanda05 - 04.03.2016
No sale, por ejemplo en este clan con 34 miembros aparece asн:
Re: Optimizar cуdigo. -
Daniel-92 - 05.03.2016
PHP код:
case DIALOG_VERMIEMBROSCLAN:
{
if(response)
{
new DBResult:qresult;
new count=0,string[128];
format(string, sizeof(string), "SELECT Nick,Ks,Dhs FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
qresult = db_query(ZLDB, string);
count = db_num_rows(qresult);
if(count > 0)
{
new final_string[1280],MiInfoNick[MAX_PLAYER_NAME],MiInfoKill,MiInfoDeath;
strcat(final_string,"#\tNick\tKdr\n");
for(new a=0;a<count;a++)
{
db_get_field_assoc(qresult, "Nick",MiInfoNick,sizeof MiInfoNick);
db_get_field_assoc(qresult, "Ks",string,sizeof string);
MiInfoKill = strval(string);
db_get_field_assoc(qresult, "Dhs",string,sizeof string);
MiInfoDeath = strval(string);
format(string,sizeof(string),"%d\t%s\t%0.2f\n",a+1,MiInfoNick,float(MiInfoKill)/float(MiInfoDeath));
strcat(final_string,string);
db_next_row(qresult);
}
ShowPlayerDialog(playerid,DIALOG_SINUSO, DIALOG_STYLE_TABLIST_HEADERS,"-§- Miembros del clan -§-",final_string,"Cerrar","");
PlayerPlaySound(playerid,1139,0.0,0.0,0.0);
}
db_free_result(qresult);
}
}
Re: Optimizar cуdigo. -
SickAttack - 05.03.2016
pawn Код:
case DIALOG_VERMIEMBROSCLAN:
{
if(response)
{
new string[128], DBResult:qresult, rows;
format(string, sizeof(string), "SELECT `Nick`,`Ks`,`Dhs` FROM `USERS` WHERE `Clan` = '%q' COLLATE NOCASE", JugadorInfo[playerid][zClan]);
qresult = db_query(ZLDB, string);
rows = db_num_rows(qresult);
if(rows)
{
new final_string[1280], MiInfoNick[MAX_PLAYER_NAME], MiInfoKill, MiInfoDeath;
strcat(final_string, "#\tNick\tKdr\n");
for(new i = 0; i < rows; i ++)
{
db_get_field_assoc(qresult, "Nick", MiInfoNick, sizeof(MiInfoNick));
MiInfoKill = db_get_field_assoc_int(qresult, "Ks");
MiInfoDeath = db_get_field_assoc_int(qresult, "Dhs");
format(string, sizeof(string), "%d\t%s\t%0.2f\n", (i + 1), MiInfoNick, (float(MiInfoKill) / float(MiInfoDeath)));
strcat(final_string, string);
db_next_row(qresult);
}
ShowPlayerDialog(playerid,DIALOG_SINUSO, DIALOG_STYLE_TABLIST_HEADERS, "-§- Miembros del clan -§-", final_string, "Cerrar", "");
PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
}
db_free_result(qresult);
}
}
Respuesta: Optimizar cуdigo. -
dannypanda05 - 05.03.2016
Listo, ya me funcionу, y sale al al toque comparado con el que tnнa que salнa poco a poco, me funcionaron ambos, sin despreciar la ayuda de Daniel-92 me quedo con el de SickAttack porque usa ligeramente menos funciones, pero ambas estan bien, gracias ^^