[Ajuda]sistema de pontuaзгo
#1

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!
Reply
#2

Olб luckvice.

Creio que isto irб lhe servir:
[FilterScript] Sistema de Rank Online [V2] (Top Players)

Atenciosamente,
Falcon.
Reply
#3

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!!!
Reply
#4

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
Reply
#5

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 ?
Reply
#6

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
Reply
#7

Ok. Mas vocк poderia me explicar basicamente as funзхes deste codigo e do anterior ?

Explicar linha por linha, se possivel.
Reply
#8

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)