ResetCount vs Resets no MU Online: Qual Campo Usar e Qual a Diferença?
Entenda a diferença entre ResetCount, Resets e ResetsG no MU Online, descubra qual campo sua source realmente utiliza e corrija rankings, painéis administrativos e sistemas de reset que consultam a coluna errada.
ResetCount, Resets e ResetsG não são obrigatoriamente a mesma coisa. Esses nomes aparecem em diferentes sources de MU Online para armazenar informações relacionadas aos resets dos personagens.
O problema começa quando o GameServer grava em uma coluna, enquanto o website, ranking ou painel administrativo consulta outra.
Nesse cenário, o personagem pode possuir dezenas ou centenas de resets dentro do jogo e ainda aparecer com 0 resets no ranking.
ResetCount e Resets são a mesma coisa?
Não existe uma regra universal.
Um desenvolvedor pode criar sua source utilizando:
ResetCount
enquanto outra source utiliza:
Resets
e outro projeto pode usar:
ResetsG
O nome da coluna sozinho não determina qual delas é o contador oficial.
O campo realmente importante é aquele que o GameServer consulta e atualiza ao realizar o reset.
Campos de reset encontrados em sources MU Online
Você poderá encontrar nomes como:
ResetCount
Resets
ResetsG
Reset
ResetNumber
ResetsWeek
ResetsMonth
MResets
MasterReset
| Campo | Possível utilização |
|---|---|
| ResetCount | Contador total de resets em determinadas sources. |
| Resets | Outro nome utilizado para o total de resets. |
| ResetsG | Contador global encontrado em algumas sources customizadas. |
| ResetsWeek | Quantidade de resets utilizada em ranking semanal. |
| ResetsMonth | Quantidade utilizada em ranking mensal. |
| MResets | Master Reset em determinadas implementações. |
Como descobrir qual campo de reset sua source usa?
Um dos métodos mais seguros é observar a database antes e depois de executar um reset.
Primeiro verifique quais campos existem:
sp_help 'Character';
Depois consulte o personagem:
SELECT
Name,
ResetCount,
Resets,
ResetsG
FROM Character
WHERE Name = 'Personagem';
Remova da query qualquer coluna que não exista na sua database.
Agora faça um reset normalmente dentro do jogo e execute novamente a consulta.
O campo que aumentou é um forte candidato a ser o contador utilizado pela lógica ativa de reset.
O que é ResetCount?
ResetCount é um nome bastante comum em sistemas
customizados.
Exemplo:
Name ResetCount
------------ ----------
DarkKnight 125
Ranking usando ResetCount
SELECT TOP 10
Name,
Class,
ResetCount,
cLevel
FROM Character
WHERE ctlcode = 0 OR ctlcode IS NULL
ORDER BY
ResetCount DESC,
cLevel DESC;
O que é Resets?
Algumas sources utilizam simplesmente:
Resets
como contador de resets.
SELECT
Name,
Resets
FROM Character
WHERE Name = 'DarkKnight';
O que é ResetsG?
ResetsG aparece em determinados projetos
como contador principal ou global de resets.
Um ranking poderia utilizar:
SELECT TOP 10
Name,
Class,
ResetsG,
cLevel
FROM Character
WHERE ctlcode = 0 OR ctlcode IS NULL
ORDER BY
ResetsG DESC,
cLevel DESC;
Ranking mostra 0 resets mesmo com o personagem resetado
Este é um dos sinais mais fortes de que o website está consultando a coluna errada.
Imagine que o GameServer tenha:
ResetsG = 150
mas o site execute:
SELECT
ResetCount
FROM Character;
Se ResetCount estiver zerado, o ranking também mostrará zero.
Correção
SELECT TOP 100
Name,
ResetsG,
cLevel
FROM Character
ORDER BY
ResetsG DESC,
cLevel DESC;
O GameServer determina o campo correto?
Na prática, o principal contador é aquele usado pela rotina de reset do GameServer.
Se você possui a source, pesquise por:
ResetCount
Resets
ResetsG
Também procure queries como:
UPDATE Character
SET ResetCount = ResetCount + 1
ou:
UPDATE Character
SET ResetsG = ResetsG + 1
Comando /reset pode atualizar um campo diferente?
Sim.
Em sources muito modificadas, podem existir dois sistemas diferentes de reset.
Por exemplo:
/reset
|
+--> ResetCount
Sistema automático
|
+--> ResetsG
Isso pode produzir:
ResetCount = 30
ResetsG = 152
Nesse caso, é necessário identificar qual rotina ainda está ativa e qual contador deve ser usado para cada finalidade.
Website deve usar ResetCount ou Resets?
O website deve seguir a estrutura real da source.
É normalmente melhor adaptar o PHP do ranking do que adicionar uma coluna desnecessária à database.
Exemplo de código incompatível:
SELECT TOP 100
Name,
ResetCount
FROM Character
ORDER BY ResetCount DESC;
Se o servidor utiliza ResetsG:
SELECT TOP 100
Name,
ResetsG
FROM Character
ORDER BY ResetsG DESC;
Painel administrativo precisa usar o mesmo contador
Imagine que seu editor de personagem execute:
UPDATE Character
SET ResetCount = 100
WHERE Name = 'DarkKnight';
mas o GameServer carregue:
ResetsG
O administrador verá uma alteração na database, mas o número utilizado pelo jogo continuará diferente.
Posso sincronizar ResetCount e ResetsG?
Tecnicamente é possível, mas só faça isso depois de compreender a função de cada coluna.
Exemplo:
UPDATE Character
SET ResetCount = ResetsG;
Esse comando copiaria ResetsG para ResetCount em todos os personagens.
Como localizar valores diferentes
SELECT
Name,
ResetCount,
ResetsG
FROM Character
WHERE ResetCount <> ResetsG;
Essa consulta só funciona quando ambas as colunas existem.
Invalid Column Name ResetCount
Se aparecer:
Invalid column name 'ResetCount'
a database simplesmente não possui essa coluna.
Verifique se existe outra alternativa:
Resets
ResetsG
Reset
ResetNumber
ResetsWeek e ResetsMonth
Não confunda rankings periódicos com o total geral.
Uma source pode possuir:
ResetsG = Total geral
ResetsWeek = Total semanal
ResetsMonth = Total mensal
Reset normal e Master Reset
Também são sistemas diferentes.
Exemplo:
ResetCount = Reset
MResets = Master Reset
A nomenclatura real depende da source.
Principais problemas
| Problema | Causa provável |
|---|---|
| Ranking mostra 0 | Website consulta outra coluna. |
| Painel altera mas jogo não muda | Painel grava no contador errado. |
| Invalid Column Name | A coluna não existe. |
| ResetCount e ResetsG diferentes | Sistemas distintos ou campo legado. |
| Valor volta após relogar | GameServer salva o valor carregado em memória. |
| Ranking semanal incorreto | Confusão entre total geral e ResetsWeek. |
Checklist para encontrar o campo correto
| Etapa | O que verificar |
|---|---|
| 1 | Liste as colunas da Character. |
| 2 | Anote os valores antes do reset. |
| 3 | Faça um reset no jogo. |
| 4 | Veja qual coluna aumentou. |
| 5 | Pesquise a coluna na source. |
| 6 | Confira o ranking PHP. |
| 7 | Confira o painel administrativo. |
Perguntas frequentes
ResetCount e Resets são iguais?
Podem representar a mesma ideia em projetos diferentes, mas não existe garantia de que sejam equivalentes na mesma database.
Qual campo devo usar no ranking?
Use o contador que o GameServer realmente atualiza durante o reset.
O que é ResetsG?
É um nome utilizado por algumas sources customizadas para armazenar um contador de resets, frequentemente geral.
Posso criar ResetCount se não existir?
Criar a coluna não faz o GameServer utilizá-la. Só existe utilidade quando algum sistema é programado para ler e atualizar esse campo.
Por que o ranking mostra reset errado?
Normalmente porque a query está consultando uma coluna diferente da utilizada pelo GameServer.
Posso copiar ResetsG para ResetCount?
Sim, tecnicamente, mas somente após confirmar que os dois deveriam representar o mesmo contador e depois de realizar backup.
Conclusão
A diferença entre ResetCount, Resets e ResetsG depende da implementação utilizada pela source do servidor.
Não existe um nome universal para o contador principal de resets no MU Online.
Para descobrir o campo correto, compare a tabela Character antes e depois de realizar um reset e, quando possuir o código-fonte, procure diretamente pela coluna utilizada na rotina do GameServer.
Depois disso, faça o website, ranking e painel administrativo utilizarem o mesmo contador.