[AJUDA] Sistema de rank
#1

Tenho um filterscript de ranks por kills, mas notei que ele pega os stats de quanto matou pelo 'Score', assim, O cara tem 75000$ quando coloco /rank pra saber meu rank tah lб os 75000, dizendo q matei esse tanto sendo q й meu dinheiro.

Como faзo pra colocar no ' Score ' apenas os kills da pessoa? Ex: o jogador matou 10 pessoas, quando ele apertar
''TAB'' irб aparecer 10 do lado do nome dele...
Reply
#2

Mostra o OnPlayerDeath desse FS ae.
Reply
#3

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[256];

    if(GetPlayerScore(killerid) == 100) // Amount of required kills to get rank 1 *Biggner'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Aspirante'* por matar %d jogadores!", string, GetPlayerScore(killerid) );
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 1;
    }
    else if(GetPlayerScore(killerid) == 200) // Amount of required kills to get rank 2 *Soldier*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Soldado* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 2;
    }
    else if(GetPlayerScore(killerid) == 300) // Amount of required kills to get rank 3 *Commander'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Comandante'* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 3;
    }
    else if(GetPlayerScore(killerid) == 500 ) // Amount of required kills to get rank 4 *Boss*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Mestre* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 4;
    }
    else if(GetPlayerScore(killerid) == 1000) // Amount of required kills to get rank 5 *Don*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Chegou ao ULTIMO Nivel!! *Viciado* por matar %d JOGADORES!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 5;
 }
    return 1;
}
Reply
#4

Coloca isso no OnPlayerDeath:
pawn Код:
SetPlayerScore(killerid, GetPlayerScore(killerid) +1);
Acho que talvez funfe.
Reply
#5

Troquei os:
pawn Код:
GetPlayerName(killerid, string, sizeof(string) );
por esse codigo que vocк me passou e ainda continua...

Pelo que parece ela geta o score do jogador, tem como eu fazer o score de todo mundo comeзar com 0 e ir aumentando +1 a cada kill, mas o dinheiro continuar o mesmo que o jogador tem?
Reply
#6

Nгo era pra subistituir.
Era sу pra colocar ali, tipo assim:
pawn Код:
new string[256];

     SetPlayerScore(killerid, GetPlayerScore(killerid) +1);

    if(GetPlayerScore(killerid) == 100) // Amount of required kills to get rank 1 *Biggner'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Aspirante'* por matar %d jogadores!", string, GetPlayerScore(killerid) );
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 1;
    }
    else if(GetPlayerScore(killerid) == 200) // Amount of required kills to get rank 2 *Soldier*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Soldado* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 2;
    }
    else if(GetPlayerScore(killerid) == 300) // Amount of required kills to get rank 3 *Commander'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Comandante'* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 3;
    }
    else if(GetPlayerScore(killerid) == 500 ) // Amount of required kills to get rank 4 *Boss*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Mestre* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 4;
    }
    else if(GetPlayerScore(killerid) == 1000) // Amount of required kills to get rank 5 *Don*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Chegou ao ULTIMO Nivel!! *Viciado* por matar %d JOGADORES!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 5;
 }
    return 1;
}
Reply
#7

Код:
Ranks.pwn(202) : warning 217: loose indentation
Ranks.pwn(204) : warning 217: loose indentation
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

2 Warnings.
As Linhas:
pawn Код:
SetPlayerScore(killerid, GetPlayerScore(killerid) +1);//Linha 202
     
    if(GetPlayerScore(killerid) == 100) //Linha 204
Reply
#8

Coloca assim:

pawn Код:
new string[256];

    SetPlayerScore(killerid, GetPlayerScore(killerid) +1);

    if(GetPlayerScore(killerid) == 100) // Amount of required kills to get rank 1 *Biggner'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Aspirante'* por matar %d jogadores!", string, GetPlayerScore(killerid) );
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 1;
    }
    else if(GetPlayerScore(killerid) == 200) // Amount of required kills to get rank 2 *Soldier*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Soldado* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 2;
    }
    else if(GetPlayerScore(killerid) == 300) // Amount of required kills to get rank 3 *Commander'*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Comandante'* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 3;
    }
    else if(GetPlayerScore(killerid) == 500 ) // Amount of required kills to get rank 4 *Boss*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Avanзou para o nivel *Mestre* por matar %d jogadores!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 4;
    }
    else if(GetPlayerScore(killerid) == 1000) // Amount of required kills to get rank 5 *Don*
    {
        GetPlayerName(killerid, string, sizeof(string) );
        format(string, sizeof(string), ">> %s Chegou ao ULTIMO Nivel!! *Viciado* por matar %d JOGADORES!", string, GetPlayerScore(killerid));
        SendClientMessageToAll(COLOR_LIGHTBLUE, string);
        pRank[playerid] = 5;
 }
    return 1;
}
Caso nгo dк, da um TAB no "new string[256];".
To saindo ae, flw, atй amanhг, fui.
Reply
#9

Os warning sairam, mas o code continua aparecendo q to com o tanto de kills q tah no meu score..
abraзo, atй!
Reply
#10

Tem algo ajustando o score com o dinheiro do jogador, tire isso.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)