Custom means it has to be customized depending on how you want to sort it. The text over the function on the inc really explains it all.
Here's an example of 1D-array I did recently. It sorts players by score, if score is equal it compares who has the least amount of deaths instead.
Code:
#include <amxmodx>
#include <cstrike>
#define g_MaxPlayers 32
public plugin_init() {
register_plugin("Test Plugin 8", "", "");
register_clcmd("say /sb", "score")
}
public score(id) {
new iPlayers[32], iPlayersnum, text[64], name[32];
get_players(iPlayers, iPlayersnum, "c");
SortCustom1D(iPlayers, iPlayersnum, "SortFunc");
for ( new i = 0 ; i < iPlayersnum ; i++ ) {
get_user_name(iPlayers[i], name, 31);
formatex(text, 63, "%s %i %i", name, get_user_frags(iPlayers[i]), get_user_deaths(iPlayers[i]));
server_print("%d: %s", i, iPlayers[i]);
}
}
public SortFunc(elem1, elem2) {
if ( get_user_frags(elem1) > get_user_frags(elem2) )
return -1;
else if ( get_user_frags(elem1) < get_user_frags(elem2) )
return 1;
else if ( get_user_deaths(elem1) < get_user_deaths(elem2) )
return -1;
else if ( get_user_deaths(elem1) > get_user_deaths(elem2) )
return 1;
return 0;
}
0: they are equal.