[Ajuda] Ranking Mysql no jogo
#1

Alguйm pode me ajudar com 1 rank de base pra que eu possa criar os outros

/rank bank

Informaзхes \/

variavel
Код:
new bank[MAX_PLAYERS]
save da variavel bank
Код:
stock OnPlayerSave(playerid) {
    new query[2500], ip[25];
    GetPlayerIp(playerid, ip, sizeof(ip));
    money[playerid] = GetPlayerMoneyEx(playerid);

    mysql_format(ConnectMYSQL, query, sizeof(query), "UPDATE `accounts` SET `Username` = '%s', `IP` = '%s', `scorelevel` = '%d', `maconha` = '%d', `material` = '%d', `sementes` = '%d', `lastlogin` = '%d', `wanted` = '%d', `moneybag` = '%d', `COPskills` = '%d', `CRIMINALskills` = '%d', `PARAMEDICskills` = '%d', `admin` = '%d', `money` = '%d', `bank` = '%d' WHERE `Username` = '%s' ",
    GetName(playerid),
    ip,
    scorelevel[playerid],
    maconha[playerid],
    material[playerid],
    sementes[playerid],
    lastlogin[playerid],
    wanted[playerid],
    moneybag[playerid],
    COPskills[playerid],
    CRIMINALskills[playerid],
    PARAMEDICskills[playerid],
    admin[playerid],
    money[playerid],
    bank[playerid],
    GetName(playerid));
    mysql_pquery(ConnectMYSQL, query);
Carregamento da variavel
Код:
stock OnPlayerLogin(playerid)
{
    new query[512], rows, fields;
	mysql_format(ConnectMYSQL, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Username` = '%s'", Nome(playerid) );
	mysql_query(ConnectMYSQL,query);
    cache_get_data(rows, fields);
    if(rows)
	{
		new int_dest[58];
		int_dest[0] = cache_get_field_content_int(0, "UserID");               	pInfo[playerid][UserID] = int_dest[0];
		int_dest[1] = cache_get_field_content_int(0, "scorelevel");         	scorelevel[playerid] = int_dest[1];
		int_dest[2] = cache_get_field_content_int(0, "maconha");           		maconha[playerid] = int_dest[2];
		int_dest[3] = cache_get_field_content_int(0, "material");           	material[playerid] = int_dest[3];
		int_dest[4] = cache_get_field_content_int(0, "sementes");           	sementes[playerid] = int_dest[4];
		int_dest[5] = cache_get_field_content_int(0, "wanted");          	 	wanted[playerid] = int_dest[5];
		int_dest[6] = cache_get_field_content_int(0, "moneybag");          		moneybag[playerid] = int_dest[6];
		int_dest[7] = cache_get_field_content_int(0, "COPskills");          	COPskills[playerid] = int_dest[7];
		int_dest[8] = cache_get_field_content_int(0, "CRIMINALskills");         CRIMINALskills[playerid] = int_dest[8];
		int_dest[9] = cache_get_field_content_int(0, "PARAMEDICskills");        PARAMEDICskills[playerid] = int_dest[9];
		int_dest[10] = cache_get_field_content_int(0, "admin");     			admin[playerid] = int_dest[10];
		int_dest[11] = cache_get_field_content_int(0, "money");     			money[playerid] = int_dest[11];
		int_dest[12] = cache_get_field_content_int(0, "bank");     				bank[playerid] = int_dest[12];
Reply
#2

Acho que compreendi, veja se isto lhe ajuda:

PHP код:
CMD:rank(playerid,params[])
{
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params))return SendClientMessage(playerid,-1,"Use: /rank [Opзгo]");
    if(
strcmp(params,"bank",true) == 0)
    {
    
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++)
        {
            
SendClientMessage(playerid,-1,"Rank: Banco");
            
cache_get_field_content(r"Username",name);
            
format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content(r"bank"));
            
SendClientMessage(playerid,-1,sG);
        }
    }

Veja se й isto que precisa, espero que seja .
OBS:O cуdigo nгo foi testado, adeque a sua maneira.
Reply
#3

Quote:
Originally Posted by MtC
Посмотреть сообщение
Acho que compreendi, veja se isto lhe ajuda:

PHP код:
CMD:rank(playerid,params[])
{
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params))return SendClientMessage(playerid,-1,"Use: /rank [Opзгo]");
    if(
strcmp(params,"bank",true) == 0)
    {
    
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++)
        {
            
SendClientMessage(playerid,-1,"Rank: Banco");
            
cache_get_field_content(r"Username",name);
            
format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content(r"bank"));
            
SendClientMessage(playerid,-1,sG);
        }
    }

Veja se й isto que precisa, espero que seja .
OBS:O cуdigo nгo foi testado, adeque a sua maneira.
Te adicionei um REP, mas nгo ta funcionando a prcipal parte

warning 202: number of arguments does not match definition
Nessa linha:
Код:
format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content(r, "bank"));
Dei uma ajeitada, daquele jeito que vocк botou ia aparecer todos os players nй? Tentei botar pra aparecer apenas os 15 primeiros

Код:
CMD:rank(playerid,params[]) {
    new sG[128], name[128];
    if(sscanf(params,"s[68]",params)) {
		SendClientMessage(playerid,-1,"Use: /rank [option]");
		SendClientMessage(playerid,-1,"Options: bank");
		return 1;
	}
    if(strcmp(params,"bank",true) == 0) {
		new rows, fields;
		mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC");
        cache_get_data(rows, fields);   
        for(new r; r < 15; r++) {
            SendClientMessage(playerid,-1,"Rank: Banco");
            cache_get_field_content(r, "Username",name);
            format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content(r, "bank")); // warning 202: number of arguments does not match definition
            SendClientMessage(playerid,-1,sG);
        }
    }
	return 1;
}
Quem quiser usar ta aн /\
Reply
#4

Ajustado, adicionei a limitaзгo para 15 resultados no cуdigo tambйm.
Veja se estб ok:
PHP код:
CMD:rank(playerid,params[]) {
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params)) {
        
SendClientMessage(playerid,-1,"Use: /rank [option]");
        
SendClientMessage(playerid,-1,"Options: bank");
        return 
1;
    }
    if(
strcmp(params,"bank",true) == 0) {
        new 
rowsfields;
        
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC LIMIT 15");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++) {
            
SendClientMessage(playerid,-1,"Rank: Banco");
            
cache_get_field_content(r"Username",name);
            
format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content_int(r"bank"));
            
SendClientMessage(playerid,-1,sG);
        }
    }
    return 
1;

Reply
#5

Quote:
Originally Posted by MtC
Посмотреть сообщение
Ajustado, adicionei a limitaзгo para 15 resultados no cуdigo tambйm.
Veja se estб ok:
PHP код:
CMD:rank(playerid,params[]) {
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params)) {
        
SendClientMessage(playerid,-1,"Use: /rank [option]");
        
SendClientMessage(playerid,-1,"Options: bank");
        return 
1;
    }
    if(
strcmp(params,"bank",true) == 0) {
        new 
rowsfields;
        
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC LIMIT 15");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++) {
            
SendClientMessage(playerid,-1,"Rank: Banco");
            
cache_get_field_content(r"Username",name);
            
format(sG,sizeof(sG),"%s - $%d",name,cache_get_field_content_int(r"bank"));
            
SendClientMessage(playerid,-1,sG);
        }
    }
    return 
1;

Nossa mano, muito obrigado, assim que der vou te dar outro rep

Se nгo for abusar me ajuda aqui! O que to fazendo de errado? To querendo deixar em modo caixa pra ficar bonitinho

Код:
CMD:rank(playerid,params[]) {
    new sG[128], name[128];
    if(sscanf(params,"s[68]",params)) {
        SendClientMessage(playerid,-1,"Use: /rank [option]");
        SendClientMessage(playerid,-1,"Options: bank");
        return 1;
    }
	new DialogNGL[1600];
    if(strcmp(params,"bank",true) == 0) {
        new rows, fields;
        mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC LIMIT 15");
        cache_get_data(rows, fields);   
        for(new r; r < rows; r++) {
			if(r == 1) { // primeiro lugar cor: ouro
				cache_get_field_content(r, "Username",name);
				format(sG,sizeof(sG), "{FFFF00}%i- %s - $%d\n", r, name,cache_get_field_content_int(r, "bank"));
				strcat(DialogNGL,sG);
			}
			else if(r == 2) { // primeiro lugar cor: prata
				cache_get_field_content(r, "Username",name);
				format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n", r, name,cache_get_field_content_int(r, "bank"));
				strcat(DialogNGL,sG);
			}
			else if(r == 3) { // primeiro lugar cor: bronze
				cache_get_field_content(r, "Username",name);
				format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n", r, name,cache_get_field_content_int(r, "bank"));
				strcat(DialogNGL,sG);
			}
			else { // cor normal
				cache_get_field_content(r, "Username",name);
				format(sG,sizeof(sG), "{FFFFFF}%i- %s - $%d\n", r, name,cache_get_field_content_int(r, "bank"));
				strcat(DialogNGL,sG);
			}
        }
    }
    return 1;
}
Reply
#6

Veja se funciona:
PHP код:
//Adicione ao topo do seu esta #define
#define DIALOG_RANK 1000
//----------------------------------------------//
//Comando abaixo, notei a falta do Dialog, apenas acrescentei o dialog.
CMD:rank(playerid,params[]) {
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params)) {
        
SendClientMessage(playerid,-1,"Use: /rank [option]");
        
SendClientMessage(playerid,-1,"Options: bank");
        return 
1;
    }
    new 
DialogNGL[1600];
    if(
strcmp(params,"bank",true) == 0) {
        new 
rowsfields;
        
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC LIMIT 15");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++) {
            if(
== 1) { // primeiro lugar cor: ouro
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{FFFF00}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else if(
== 2) { // primeiro lugar cor: prata
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else if(
== 3) { // primeiro lugar cor: bronze
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else { 
// cor normal
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{FFFFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
        }
        
ShowPlayerDialog(playerid,DIALOG_RANK,DIALOG_STYLE_LIST,"Rank: Bank",DialogNGL,"Fechar","");
    }
    return 
1;

Reply
#7

Quote:
Originally Posted by MtC
Посмотреть сообщение
Veja se funciona:
PHP код:
//Adicione ao topo do seu esta #define
#define DIALOG_RANK 1000
//----------------------------------------------//
//Comando abaixo, notei a falta do Dialog, apenas acrescentei o dialog.
CMD:rank(playerid,params[]) {
    new 
sG[128], name[128];
    if(
sscanf(params,"s[68]",params)) {
        
SendClientMessage(playerid,-1,"Use: /rank [option]");
        
SendClientMessage(playerid,-1,"Options: bank");
        return 
1;
    }
    new 
DialogNGL[1600];
    if(
strcmp(params,"bank",true) == 0) {
        new 
rowsfields;
        
mysql_query(ConnectMYSQL,"SELECT * FROM `accounts` ORDER BY bank DESC LIMIT 15");
        
cache_get_data(rowsfields);   
        for(new 
rrowsr++) {
            if(
== 1) { // primeiro lugar cor: ouro
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{FFFF00}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else if(
== 2) { // primeiro lugar cor: prata
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else if(
== 3) { // primeiro lugar cor: bronze
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{80FFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
            else { 
// cor normal
                
cache_get_field_content(r"Username",name);
                
format(sG,sizeof(sG), "{FFFFFF}%i- %s - $%d\n"rname,cache_get_field_content_int(r"bank"));
                
strcat(DialogNGL,sG);
            }
        }
        
ShowPlayerDialog(playerid,DIALOG_RANK,DIALOG_STYLE_LIST,"Rank: Bank",DialogNGL,"Fechar","");
    }
    return 
1;

Ah internet tinha caido, jб consegui, tinha esquecido sу o ShowPlayerDialog(playerid,DIALOG_RANK,DIALOG_STYLE _LIST,"Rank: Bank",DialogNGL,"Fechar","");

Kkkkkkk

Vlw aн cara, obrigadгo, +rep
Reply
#8

Disponha ^^.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)