SA-MP Forums Archive
Optimizar cуdigo. - 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: Optimizar cуdigo. (/showthread.php?tid=602201)



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], DBResultqresult;
    new 
count 0value[20], Field[25], str[1250], str3[1250];
    new 
MiInfoNick[25], MiInfoKillMiInfoDeath;
    
format(Querysizeof(Query), "SELECT * FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
    
qresult db_query(ZLDBQuery);
    
count db_num_rows(qresult);
     for(new 
a=0;a<count;a++)
    {
    
db_get_field_assoc(qresult"Nick"Field25); format(MiInfoNick,25,"%s",Field);
    
db_get_field_assoc(qresult"Ks"value5); MiInfoKill strval(value);
    
db_get_field_assoc(qresult"Dhs"value5); 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_SINUSODIALOG_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(stringsizeof(string), "SELECT Nick,Ks,Dhs FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
        
qresult db_query(ZLDBstring);
        
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_SINUSODIALOG_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(stringsizeof(string), "SELECT Nick,Ks,Dhs FROM `USERS` WHERE `Clan` = '%s' COLLATE NOCASE",DB_Escape(JugadorInfo[playerid][zClan]));
        
qresult db_query(ZLDBstring);
        
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_SINUSODIALOG_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 ^^