[Ajuda]sistema de pontuaзгo -
luckvice - 31.05.2011
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!
Re: [Ajuda]sistema de pontuaзгo -
Falcon. - 31.05.2011
Olб
luckvice.
Creio que isto irб lhe servir:
[FilterScript] Sistema de Rank Online [V2] (Top Players)
Atenciosamente,
Falcon.
Re: [Ajuda]sistema de pontuaзгo -
luckvice - 31.05.2011
gostaria de saber como й a funзao nгo gosto de basear meus codigos com scripts dos outros ^^ mas Obrigado, quem poder ajudar dк um help aki Abraзos!!!
Re: [Ajuda]sistema de pontuaзгo -
TheGarfield - 31.05.2011
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
Re: [Ajuda]sistema de pontuaзгo -
Shadoww5 - 31.05.2011
Mas desta forma o ranking irб mostrar do maior numero de assassinatos para o menor ?
Ex:
Code:
The Garfield - 10 assassinatos
Shadoww - 5 assassinatos
[S]trong - 2 assassinatos
Seria assim ?
Re: [Ajuda]sistema de pontuaзгo -
TheGarfield - 01.06.2011
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
Re: [Ajuda]sistema de pontuaзгo -
Shadoww5 - 01.06.2011
Ok. Mas vocк poderia me explicar basicamente as funзхes deste codigo e do anterior ?
Explicar linha por linha, se possivel.
Re: [Ajuda]sistema de pontuaзгo -
TheGarfield - 01.06.2011
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.