Score - Ayudita
#3

http://forum.sa-mp.com/showpost.php?...2&postcount=44


Код:
#include <a_samp>

#define DIALOG_SCORE (2016)
#define MAX_SCORE (10)
enum rankingEnum
{
    player_Score,
    player_ID
}

stock GetPlayerHighestScores(array[][rankingEnum], left, right)
{
    new
        tempLeft = left,
        tempRight = right,
        pivot = array[(left + right) / 2][player_Score],
        tempVar
    ;
    while(tempLeft <= tempRight)
    {
        while(array[tempLeft][player_Score] > pivot) tempLeft++;
        while(array[tempRight][player_Score] < pivot) tempRight--;

        if(tempLeft <= tempRight)
        {
            tempVar = array[tempLeft][player_Score], array[tempLeft][player_Score] = array[tempRight][player_Score], array[tempRight][player_Score] = tempVar;
            tempVar = array[tempLeft][player_ID], array[tempLeft][player_ID] = array[tempRight][player_ID], array[tempRight][player_ID] = tempVar;
            tempLeft++, tempRight--;
        }
    }
    if(left < tempRight) GetPlayerHighestScores(array, left, tempRight);
    if(tempLeft < right) GetPlayerHighestScores(array, tempLeft, right);
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if(!strcmp(cmdtext, "/topScore", true))
	{
		new
			playerScores[MAX_PLAYERS][rankingEnum],
			index
		;
		for(new i; i != MAX_PLAYERS; ++i)
		{
			if(IsPlayerConnected(i) && !IsPlayerNPC(i))
			{
				playerScores[index][player_Score] = GetPlayerScore(i);
				playerScores[index++][player_ID] = i;
			}
		}
		GetPlayerHighestScores(playerScores, 0, index);

		new
			score_Text[256] = "\n",
			player_Name[20]
		;
		for(new i; i < MAX_SCORE; ++i)
		{
			if(i < index)
			{
				GetPlayerName(playerScores[i][player_ID], player_Name, sizeof(player_Name));
				format(score_Text, sizeof(score_Text), "%s\n %d. %s - \t%d", score_Text, i + 1, player_Name, playerScores[i][player_Score]);
			}
			else
				format(score_Text, sizeof(score_Text), "%s\n %d. N/A", score_Text, i + 1);
		}
		strins(score_Text, "Nicks\tScore", 0);
		ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_TABLIST_HEADERS, "ARENA N1", score_Text, "ok", "");
		return 1;
	}
	return 0;
}
Reply


Messages In This Thread
Score - Ayudita - by Zodiaco - 19.06.2016, 00:57
Respuesta: Score - Ayudita - by Ghost112397 - 19.06.2016, 08:28
Respuesta: Score - Ayudita - by OTACON - 19.06.2016, 11:12
Re: Respuesta: Score - Ayudita - by Zodiaco - 19.06.2016, 14:05
Respuesta: Score - Ayudita - by adri1 - 19.06.2016, 18:17

Forum Jump:


Users browsing this thread: 1 Guest(s)