Ir para conteúdo
  • 0

[Resolvido] Como faço um ranking.. de TOP.. tal tal tal??


Guest Gostosão do fórum SrKerwin

Pergunta

Guest Gostosão do fórum SrKerwin

Como eu faço um ranking?

 

Eu tenho um plugin básico de MITO e eu não faço a MINIMA IDEIA de como eu pego os jogadores que mais foram mito e faço um /mito rank..

 

Ai no /mito rank aparecer:

MITO Ranks:

SeuNick - pegou mito 10 vez(es)

Teste1 - pegou mito 2 vez(es)

Teste02 - pegou mito 1 vez(es)

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

Entao, a resposta dele ja é o suficiente pra entender o que se deve fazer.

Foi o que eu falei, ele quer o código pronto, não ajuda com o código dele. 

Mas cada um cada um né, se pra você ajudar é dar o código pronto ..

Como disse, as 2 estão incompletas.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vou dar o exemplo mais simples que consegui pensar.
 
Toda vez que o cara pegar o mito você vai salvando na configuração (ou cria um cache e salva de tempo em tempo) por exemplo
int valorAnterior = fileConfiguration.get("rank." + nomeDoJogador);
fileConfiguration.set(String.format("rank.%s.%d", nomeDoJogador, valorAnterior + 1));
 
Beleza, ai no /mito rank você pega esses dados armazenados e ordena.
 

final FileConfiguration fc = getConfig(); // Eu to usando a config, mas tu pode usar outro arquivo.
final Map<String, Integer> rank = new HashMap<>();


for (String k : fc.getConfigurationSection("rank").getKeys(true)) {
	rank.put(k, fc.getInt("rank." + k));
}

List<Map.Entry<String, Integer>> list = new ArrayList<>( rank.entrySet() );

Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
	@Override
	public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
		return o2.getValue().compareTo(o1.getValue());
	}
});

for (Map.Entry<String, Integer> entry : list) {
	player.sendMessage(entry.getKey() + ": " + entry.getValue());
}
Seria legal fazer um cache disso, pra não ficar fazendo isso toda hora, mas vai da sua escolha.
 
A arquivo ficaria assim
 
rank:
    player1: 2
    player2: 1
    player3: 4
    player4: 22
    player5: 7
Link para o comentário
Compartilhar em outros sites

Seu plugin bota na Database quantas vezes o cara foi mito? Se sim eu faço igual skript para isso.

 

Pega todos valores e da um for.

 

If (Valor do for > valor do for){ Esse é o primeiro.

contagem++

 

Agora vai o 2....

 

Bom, você faz um repeatingTask que verifica a contagem até quantos jogadores que você quer mostrar.

 

if (contagem > 10){

Da stop na task

}

 

Ai tu faz seus métodos se os jogadores tiverem a mesma quantidade de mito etc...

 

 

To no cell talvez expliquei de mal jeito :/

 

Bom, uso dessa forma se alguem tiver outra vou esperar tbm :)

Link para o comentário
Compartilhar em outros sites

Guest #angradosreis1000grau
ArrayList<String> listajogadores = (ArrayList<String>) jogadores.getStringList("players");
		int tamanhodalista = listajogadores.size();
		Map<String, Integer> todoskillseplayers = new TreeMap(Collections.reverseOrder());
		String player = new String();
		for(int i = 0; i < tamanhodalista; ++i){
			player = listajogadores.get(i);
			int kills = jogadores.getInt("kills." + player);
			todoskillseplayers.put(player, kills);
			}

A variavel todoskillseplayers , estara organizada em ordem decrescente !!  Eu usei uma vez e tava assim e funcionou , e nao vou arrumar to te mandando do jeito que ta la !  mas é assim  ve se vc consegue ae

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin
Depende do plugin de mito que tu usa e tals... pode ser que tenha uma api.

O plugin e meu '-'

@ON: Vou tentar.. usando os argumentos de vocês ;)

Obs; não faço mínima ideia de como faz..

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin

Tu já tem esses dados salvos? Tipo, o jogador e a quantidade de vezes que ele pegou foi mito?

Nadaaaaaaaaaaaaaaaa.. a única coisa que tem e o MITO atual e só isso.. (como eu disse, não sei nem por onde começa..)

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin

Tu quer oq? Um plugin pronto ou ajuda pq a ajuda já teve de vários.

Se a pessoa não interpreta bem basta não ser mal interpretado com ela, eu pedi ajuda, como não sei me referir a código.

Se não quiser ajuda mesmo passando código não tem problema, eu não aprendi java assistindo XTI nem nada, TODO meu conhecimento *MEDIANO* foi feito por tutoriais brasileiros.. até grandes desenvolvedores que estão aqui aprendendo java no youtube, e mesmo que ta pedindo código pronto, já que so não vai usar Ctrl V e sim copiar usando as teclas virtuais.

 

Não entendeu? não ajude, não sou muito de me humilhar, mais sou grato a quem ajuda.

Link para o comentário
Compartilhar em outros sites

Se a pessoa não interpreta bem basta não ser mal interpretado com ela, eu pedi ajuda, como não sei me referir a código.

Se não quiser ajuda mesmo passando código não tem problema, eu não aprendi java assistindo XTI nem nada, TODO meu conhecimento *MEDIANO* foi feito por tutoriais brasileiros.. até grandes desenvolvedores que estão aqui aprendendo java no youtube, e mesmo que ta pedindo código pronto, já que so não vai usar Ctrl V e sim copiar usando as teclas virtuais.

 

Não entendeu? não ajude, não sou muito de me humilhar, mais sou grato a quem ajuda.

Faz Assim Mano Toda vez que Alguem Pegar O Mito Adiciona Um Valor Pra Ele E Salva Ele na Config

Link para o comentário
Compartilhar em outros sites

Guest Koadivulga

Se a pessoa não interpreta bem basta não ser mal interpretado com ela, eu pedi ajuda, como não sei me referir a código.

Se não quiser ajuda mesmo passando código não tem problema, eu não aprendi java assistindo XTI nem nada, TODO meu conhecimento *MEDIANO* foi feito por tutoriais brasileiros.. até grandes desenvolvedores que estão aqui aprendendo java no youtube, e mesmo que ta pedindo código pronto, já que so não vai usar Ctrl V e sim copiar usando as teclas virtuais.

 

Não entendeu? não ajude, não sou muito de me humilhar, mais sou grato a quem ajuda.

Vai chegar onde com tanta arrogância? Chega aqui pedindo ajuda sendo que não sabe nem o básico de java. Sugiro pegar umas apostilas e aprender o basicão, porque pelo que você falou não sabe nem por onde começar, não venha falar de ''mediano'' porque isso nao é nem ''minimo''. Voce não quer ajuda, você quer o código pronto, e isso eu sou totalmente contra e quem tenta ajudar também deveria ser, porque não é assim que se ajuda.

Da próxima vez, tenta fazer algo sozinho ou procurar no google antes de vir aqui pedir tudo de mão beijada pra só colocar no seu código.

Foi mal irmao, mas você tá completamente errado.

Além disso, sua ajuda já foi prestada, e só não foi bem aproveitada porque você realmente não sabe nada de java.

Editado por Koadivulga
Link para o comentário
Compartilhar em outros sites

Vai chegar onde com tanta arrogância? Chega aqui pedindo ajuda sendo que não sabe nem o básico de java. Sugiro pegar umas apostilas e aprender o basicão, porque pelo que você falou não sabe nem por onde começar, não venha falar de ''mediano'' porque isso nao é nem ''minimo''. Voce não quer ajuda, você quer o código pronto, e isso eu sou totalmente contra e quem tenta ajudar também deveria ser, porque não é assim que se ajuda.

Da próxima vez, tenta fazer algo sozinho ou procurar no google antes de vir aqui pedir tudo de mão beijada pra só colocar no seu código.

Foi mal irmao, mas você tá completamente errado.

Além disso, sua ajuda já foi prestada, e só não foi bem aproveitada porque você realmente não sabe nada de java.

A unica resposta que "presta" é a do #angradosreis1000grau, e não está completa, as outras são perguntas ou não fazem sentido.

 

A do Cuthmf tmb

Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

Guest Koadivulga

A unica resposta que "presta" é a do #angradosreis1000grau, e não está completa, as outras são perguntas ou não fazem sentido.

 

A do Cuthmf tmb

Entao, a resposta dele ja é o suficiente pra entender o que se deve fazer.

Foi o que eu falei, ele quer o código pronto, não ajuda com o código dele. 

Mas cada um cada um né, se pra você ajudar é dar o código pronto ..

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin

 

Como disse, as 2 estão incompletas.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vou dar o exemplo mais simples que consegui pensar.
 
Toda vez que o cara pegar o mito você vai salvando na configuração (ou cria um cache e salva de tempo em tempo) por exemplo
int valorAnterior = fileConfiguration.get("rank." + nomeDoJogador);
fileConfiguration.set(String.format("rank.%s.%d", nomeDoJogador, valorAnterior + 1));
 
Beleza, ai no /mito rank você pega esses dados armazenados e ordena.
 

final FileConfiguration fc = getConfig(); // Eu to usando a config, mas tu pode usar outro arquivo.
final Map<String, Integer> rank = new HashMap<>();


for (String k : fc.getConfigurationSection("rank").getKeys(true)) {
	rank.put(k, fc.getInt("rank." + k));
}

List<Map.Entry<String, Integer>> list = new ArrayList<>( rank.entrySet() );

Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
	@Override
	public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
		return o2.getValue().compareTo(o1.getValue());
	}
});

for (Map.Entry<String, Integer> entry : list) {
	player.sendMessage(entry.getKey() + ": " + entry.getValue());
}
Seria legal fazer um cache disso, pra não ficar fazendo isso toda hora, mas vai da sua escolha.
 
A arquivo ficaria assim
 
rank:
    player1: 2
    player2: 1
    player3: 4
    player4: 22
    player5: 7

 

Vlw, realmente o tópico com 15 post e apenas 3 prestam! o resto veio só pra treta ou pegar post, mais não ligo u.U! vlw mrm like-boss

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...