Quote:
Originally Posted by Bugsy
This is done using a 2-dimension array and SortCustom2D() function. In one dimension you store the player ID and in the other the kills value.
Result:
Code:
1. id=1 kills=199
2. id=16 kills=102
3. id=5 kills=55
4. id=12 kills=53
5. id=2 kills=52
6. id=13 kills=50
7. id=21 kills=23
PHP Code:
#define MAX_PLAYERS 32
enum _:KillData
{
PlayerID,
PlayerKills
}
new g_KillData[ MAX_PLAYERS + 1 ][ KillData ];
public SortDataExample()
{
//Load random player ID's and kill data into array
g_KillData[ 21 ][ PlayerID ] = 21;
g_KillData[ 21 ][ PlayerKills ] = 23;
g_KillData[ 5 ][ PlayerID ] = 5;
g_KillData[ 5 ][ PlayerKills ] = 55;
g_KillData[ 16 ][ PlayerID ] = 16;
g_KillData[ 16 ][ PlayerKills ] = 102;
g_KillData[ 1 ][ PlayerID ] = 1;
g_KillData[ 1 ][ PlayerKills ] = 199;
g_KillData[ 2 ][ PlayerID ] = 2;
g_KillData[ 2 ][ PlayerKills ] = 52;
g_KillData[ 12 ][ PlayerID ] = 12;
g_KillData[ 12 ][ PlayerKills ] = 53;
g_KillData[ 13 ][ PlayerID ] = 13;
g_KillData[ 13 ][ PlayerKills ] = 50;
SortCustom2D( g_KillData , sizeof( g_KillData ) , "stats_custom_compare" );
for ( new i = 0 ; i < sizeof( g_KillData ) ; i++ )
{
if ( g_KillData[ i ][ PlayerID ] )
{
server_print( "%d. id=%d kills=%d" , i+1 , g_KillData[ i ][ PlayerID ] , g_KillData[ i ][ PlayerKills ] );
}
}
}
public stats_custom_compare(elem1[],elem2[])
{
if(elem1[1] > elem2[1]) return -1;
else if(elem1[1] < elem2[1]) return 1;
return 0;
}
|
Thanks this is what i was looking for

Just 1 question why used %d while array is integer.
__________________