Sistema de Ranking

Os servidores Zona Franga e Quebra Galo usam atualmente um sistema de rankeamento simples dos clientes. Assim, foram definidos dois rankings independentes, um para mapas cooperativos, modos Open/Le/Fa; e outro restrito a mapas de duelo, modos Duel/Fa.

Os rankings não se misturam, assim, o mesmo jogador pode ter um rating independente nos dois.

O nome do jogador é a identidade, e é usado como indexador, incluindo os códigos de cor.
Dessa forma, nomes como Pads e ^1Pads para os rankings são considerados clientes diferentes.

Nota: O nome “Padawan”, por ser um placeholder, foi removido do ranking, assim clientes “sem nome” não contam.

RANKING DUEL/FA (Quebra Galo)

Esse ranking utiliza ELO clássico 1v1, com rating inicial de 1500 para novos clientes, com as seguintes fórmulas:

Expectativa = 1 / (1 + 10^((Rating do oponente - Rating do jogador) / 400))

Rating Novo = Rating atual + K × (Resultado - Expectativa)

Onde: Resultado = 1 para vitória; e 0 para derrota, com K = 32 (valor padrão).

Obs: Existe paralelamente também uma contagem acumulativa de Experiência (XP) para cada cliente, onde vitória garante +1XP e derrota +0,5XP.

RANKING OPEN/LE/FA (Zona Franga)

Eu tentei um misto do Trueskill (usado no Halo) com ELO, mas foi apenas levemente inspirado, pois devido as limitações do log do Jedi Academy, não é possível definir sempre a vitória do round. No entanto, eu uso ponderação do rating médio do time, para assim tentar um certo equilíbrio em quanto cada cliente receberá entre as vitórias e derrotas.
Dessa forma, cada kill é tratada como um mini-confronto, influenciado pelo rating do jogador e o rating médio do seu time.

O rating inicial também é 1500, e no momento do kill, calcula-se a média de rating dos jogadores ativos do time, onde temos as seguintes fórmulas:

t_k = rating médio do time do vencedor
t_v = rating médio do time do perdedor

Expectativa do Time = 1 / (1 + 10^((T_v - T_k) / 400))

Dessa forma, time forte vs fraco é expectativa alta, enquanto o inverso é expectativa baixa.

Foi utilizado K = 12, devido as características do modo de time, por ter mais interferências e certo “caos”, portanto o rating muda mais devagar.

E temos a seguinte variação de rating: ΔR = K × (1 - Expectativa do time)

Assim, o vencedor ganha ΔR e o perdedor perde, sendo que time forte matando time fraco tem ganho pequeno; enquanto um time fraco que surpreende e derrota um time forte, tem um ganho maior.

Obs: O XP é um pouco diferenciado também para esse modo.
Para o vencedor conta 1 + (1 - Expectativa do time), enquanto do perdedor 0,5.

Penalidades:
Teamkill = -25 rating
Suicídio/Morte ambiental = -10 rating
Mudança para spect = -5 rating

COMANDOS

!ranking ou !r
Mostra o ranking do próprio jogador.
obs: No discord retorna o Top10.

!ranking NOME ou !r NOME
Mostra o ranking de determinado jogador.