Posts: 16
Threads: 8
Joined: Aug 2010
Reputation:
0
eaw salve galerada,
gostaria de fazer um sistema de pontuaзгo (estilo record)
matou player
new matou = 0;
matou++; +1point
new morreu = 0;
morreu ++; +1 point
blz
agora tipo comparar um top 10 melhores
if( aki ferro){}
tipo como vou comprar que playerid X; tem mortes > que playerid X; ai lista o top 5 fazendo o parametro de comparaзгo.
mesmo serve pra mortes *-*
ajudinha!
Posts: 649
Threads: 4
Joined: Jul 2010
Embaixo das cores (#defines)
pawn Code:
#define b_swap(%0,%1) if(%0 > %1) (%0 ^= %1, %1 ^= %0, %0 ^= %1) //swap xor in bubblesort (by drakins)
BubbleSort( Array[], iSize) // bubblesort (by drakins)
{
new
iLoop = 0x00000000,
iCircuito = 0x00000000;
while(++iLoop < iSize)
{
iCircuito = 0xFFFFFFFF;
while(++iCircuito != iLoop) b_swap(Array[iLoop],Array[iCircuito]);
}
return Array;
}
Comando:
pawn Code:
if(!strcmp(cmdtext,"/ranking", true))
{
static string[60];
for(new i; i < MAX_PLAYERS; ++i)
{
BubbleSort(matou, sizeof(matou));
}
new b = -1;
for(new a; a < MAX_PLAYERS; ++a)
{
for(new o; o < MAX_PLAYERS; ++o)
{
if(matou[a] == matou[o]) ++b;
if(b == 10) break;
format(string, sizeof(string),"[INFO]: Ranking: %s - %d",matou,b);
SendClientMessage(playerid, -1, string);
}
}
return 1;
}
Crйditos:
[iPs]Garfield
[iPs]DraKiNs
Posts: 649
Threads: 4
Joined: Jul 2010
Mostrarб do Menor para o maior ( Raking, Pontuaзгo ).
assim fica melhor entender:
pawn Code:
if(!strcmp(cmdtext,"/ranking", true))
{
static string[60];
for(new i; i < MAX_PLAYERS; ++i)
{
BubbleSort(matou, sizeof(matou));
}
new b = -1;
for(new a; a < MAX_PLAYERS; ++a)
{
for(new o; o < MAX_PLAYERS; ++o)
{
GetPlayerName(playerid, a,24);
if(matou[a] == matou[o]) ++b;
if(b == 10) break;
format(string, sizeof(string),"[INFO]: Ranking %d Є lugar: %s - %d pessoas",b,a,matou);
SendClientMessage(playerid, -1, string);
}
}
return 1;
}
Ouput:
Code:
1Є Lugar:[iPs]Garfield - 250 pessoas
2Є Lugar:[iPs]Gibson - 69 pessoas
3Є Lugar:Shadoww5 - 51 pessoas
Posts: 2,197
Threads: 25
Joined: Apr 2011
Reputation:
0
Ok. Mas vocк poderia me explicar basicamente as funзхes deste codigo e do anterior ?
Explicar linha por linha, se possivel.
Posts: 649
Threads: 4
Joined: Jul 2010
pawn Code:
if(!strcmp(cmdtext,"/ranking", true))
{// chave
// espaзo
// espaзo
// espaзo
// espaзo
static string[60];
for(new i; i < MAX_PLAYERS; ++i) // executa um loop em todos os players
{// chave
// espaзo
BubbleSort(matou, sizeof(matou)); // withing bublesort
// espaзo
// espaзo
}// chave
new b = -1; // null
for(new a; a < MAX_PLAYERS; ++a) //Executa o prуximo loop... de 500x
{// chave
for(new o; o < MAX_PLAYERS; ++o)// pega nome do player ve que qual lugar no ranking ele ficou..
{// chave
GetPlayerName(playerid, a,24); // get nome prayer
if(matou[a] == matou[o]) ++b; // numero ranking
if(b == 10) break; // quando chegar a 10 para
//espaзo
//espaзo
//espaзo
//espaзo
//espaзo
format(string, sizeof(string),"[INFO]: Ranking %d Є lugar: %s - %d pessoas",b,a,matou);
SendClientMessage(playerid, -1, string);
}// chave
}// chave
// espaзo
// espaзo
// espaзo
// espaзo
// espaзo
// espaзo
return 1; // return
}// chave
explicando tudo,
a parte mais dificil foram as 6 ultimas linhas.