Portal SAMP
[Ajuda] rank - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] rank (/showthread.php?tid=1120)



rank - Smith - 21/04/2021

galera estou fazendo um rank em textdraw  e estou penssando como vou compara e exibir o valor maior de uma variavel penssei em fazer um loop
Código:
for(new i; i< MAX_PLAYERS; ++i)
{

}
mais qual comparação devo fazer pra exibir somente os 3 maiores numeros da variavel pontos?
Código:
pInfo[playerid][Pontos]



RE: rank - xbruno1000x - 21/04/2021

Você terá que usar a função "while" para verificar se o loop já pegou os 3 maiores e quando terminar, parar o loop.
Caso não conheça a função, pesquise por while C++ e dê uma estudada antes de prosseguir.


RE: rank - Smith - 21/04/2021

(21/04/2021 20:40)xbruno1000x Escreveu: Você terá que usar a função "while" para verificar se o loop já pegou os 3 maiores e quando terminar, parar o loop.
Caso não conheça a função, pesquise por while C++ e dê uma estudada antes de prosseguir.

nao tem funções nativas do samp que faz isso?
rank?

https://www.youtube.com/watch?v=HnzH9y1mObE


RE: rank - xbruno1000x - 21/04/2021

(21/04/2021 21:51)Smith Escreveu:
(21/04/2021 20:40)xbruno1000x Escreveu: Você terá que usar a função "while" para verificar se o loop já pegou os 3 maiores e quando terminar, parar o loop.
Caso não conheça a função, pesquise por while C++ e dê uma estudada antes de prosseguir.

nao tem funções nativas do samp que faz isso?
rank?

https://www.youtube.com/watch?v=HnzH9y1mObE

Você quer uma função que faça o trabalho de criar um rank? Não existe.
O Pawn é uma linguagem C-Like, então o comando While é comum entre C/C++ e Pawn. Você terá que usá-lo apenas para detectar os 3 maiores, o restante é tudo feito com as funções do SA-MP, como dialogs, etc.


RE: rank - Smith - 22/04/2021

(21/04/2021 22:39)xbruno1000x Escreveu:
(21/04/2021 21:51)Smith Escreveu:
(21/04/2021 20:40)xbruno1000x Escreveu: Você terá que usar a função "while" para verificar se o loop já pegou os 3 maiores e quando terminar, parar o loop.
Caso não conheça a função, pesquise por while C++ e dê uma estudada antes de prosseguir.

nao tem funções nativas do samp que faz isso?
rank?

https://www.youtube.com/watch?v=HnzH9y1mObE

Você quer uma função que faça o trabalho de criar um rank? Não existe.
O Pawn é uma linguagem C-Like, então o comando While é comum entre C/C++ e Pawn. Você terá que usá-lo apenas para detectar os 3 maiores, o restante é tudo feito com as funções do SA-MP, como dialogs, etc.

Código:
new var = pInfo[i][Pontos];
while(var > var)
{
aqui seta valor na string da texdraw
}
tentei fazer um loop mais eu nao sei oque colocar no pra comparar qual eo maio

sera que se eu criar uma variave pra armazenar o 1,2,3 lugar e fazer uma comparaçao com if quando player conecta da certo?
tipo se Pontos[playerid] > Variavel seta String no texdraw


RE: rank - xbruno1000x - 22/04/2021

(22/04/2021 13:05)Smith Escreveu:
(21/04/2021 22:39)xbruno1000x Escreveu:
(21/04/2021 21:51)Smith Escreveu:
(21/04/2021 20:40)xbruno1000x Escreveu: Você terá que usar a função "while" para verificar se o loop já pegou os 3 maiores e quando terminar, parar o loop.
Caso não conheça a função, pesquise por while C++ e dê uma estudada antes de prosseguir.

nao tem funções nativas do samp que faz isso?
rank?

https://www.youtube.com/watch?v=HnzH9y1mObE

Você quer uma função que faça o trabalho de criar um rank? Não existe.
O Pawn é uma linguagem C-Like, então o comando While é comum entre C/C++ e Pawn. Você terá que usá-lo apenas para detectar os 3 maiores, o restante é tudo feito com as funções do SA-MP, como dialogs, etc.

Código:
new var = pInfo[i][Pontos];
while(var > var)
{
aqui seta valor na string da texdraw
}
tentei fazer um loop mais eu nao sei oque colocar no pra comparar qual eo maio

sera que se eu criar uma variave pra armazenar o 1,2,3 lugar e fazer uma comparaçao com if quando player conecta da certo?
tipo se Pontos[playerid] > Variavel seta String no texdraw

var não pode ser igual a variável de pontos. Você tem que usar para parar o loop quando chegar a 3.
Ex:
Código:
while(Percorrido < 4)
{

while significa em tradução livre "enquanto". Ou seja, enquanto o loop tiver percorrido um número menor que 4, a função após a chave será armazenada.


RE: rank - Smith - 23/04/2021

Código:
while significa em tradução livre "enquanto". Ou seja, enquanto o loop tiver percorrido um número menor que 4, a função após a chave será armazenada.


não consegui intender esse while eu fiz em settimer na pratica deu certo para o 1º lugar mais o segundo e terceiro nao deu olha so oque fiz com set timer 

Código:
public Rank(playerid)
{

for(new i = 0; i < MAX_PLAYERS; ++i)
{

if(GetPlayerScore(playerid) > pRank[0])
{
TextDrawSetString(RodaPe[21], pNome(playerid));
pRank[0] = pInfo[playerid][Level];
}

else if(GetPlayerScore(playerid) < pRank[0] && GetPlayerScore(playerid) > pRank[1])
{
TextDrawSetString(RodaPe[22], pNome(playerid));
pRank[1] = pInfo[playerid][Level];
}

else if(GetPlayerScore(playerid) < pRank[1] && GetPlayerScore(playerid) > pRank[2])
{
TextDrawSetString(RodaPe[23], pNome(playerid));
pRank[2] = pInfo[playerid][Level];
}

}

return true;
}

na pratica ele insere o primeiro lugar o segundo e terceiro não 


[Imagem: dfd86041-23ae-48ae-b0ff-13e0aa3a7719.jpg]