Ok, I think I figured it out:
Code:
GetPlayerRank(client)
{
new rank=0,Handle:hResults;
decl String:buffer[128];
Format(buffer,sizeof(buffer),"SELECT COUNT(*) FROM RPGx WHERE level > %d",GetLevel(client));
hResults=SQL_Query(hSQL,buffer);
if(SQL_FetchRow(hResults))
rank+=SQL_FetchInt(hResults,0);
Format(buffer, sizeof(buffer), "SELECT COUNT(*) FROM RPGx WHERE level = %d AND xp > %d",GetLevel(client),GetXP(client));
hResults=SQL_Query(hSQL,buffer);
if(SQL_FetchRow(hResults))
rank+=SQL_FetchInt(hResults,0);
Format(buffer, sizeof(buffer), "SELECT COUNT(*) FROM RPGx WHERE level = %d AND xp = %d AND credits <= %d",GetLevel(client),GetXP(client),GetCredits(client));
hResults=SQL_Query(hSQL,buffer);
if(SQL_FetchRow(hResults))
rank+=SQL_FetchInt(hResults,0);
return rank+1;
}
The rank seems to be right. Hopefully this works consistently.
__________________