16.07.2011, 19:59
Try my code:
PHP код:
#include <a_samp>
new VQS[2][MAX_PLAYERS];
stock quickSort(start, end)
{
new pivot = VQS[0][(start + end) / 2],
i = start,
j = end,
aux;
while(i <= j)
{
while(VQS[0][i] < pivot) i++;
while(VQS[0][j] > pivot) j--;
if(i <= j)
{
/*Change vals*/ aux = VQS[0][i], VQS[0][i] = VQS[0][j], VQS[0][j] = aux;
/*Change IDs*/ aux = VQS[1][i], VQS[1][i] = VQS[1][j], VQS[1][j] = aux;
i++, j--;
}
}
if(start < j) quickSort(start, j);
if(end > i) quickSort(i, end);
}
// Add this under OnPlayerCommandText
if(!strcmp(cmdtext, "/top10", true))
{
new str[36], string[(10*MAX_PLAYER_NAME) + 1 + 36], pName2[MAX_PLAYER_NAME];
new k = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
VQS[0][k] = GetPlayerScore(i);
VQS[1][k++] = i;
}
}
if(k > 1)
{
quickSort(0, k-1);
for(new j = 0, x = (k > 10 ? (10) : (k)); j < x; j++)
{
GetPlayerName(VQS[1][j], pName2, MAX_PLAYER_NAME);
format(str, 36, "{FFFFFF}%d. {62ACE0}%s - {E06262}%d score\n", j+1, pName2, VQS[0][j]);
strcat(string, str);
}
ShowPlayerDialog(playerid, 0xFF, DIALOG_STYLE_LIST, "TOP 10", string, "OK", "");
}
else SendClientMessage(playerid, -1, "Can't make a TOP !");
return 1;
}