AccountLevel VIP 0/1/2/3: Como Funciona no MU Online
Entenda como o campo AccountLevel pode ser utilizado para controlar planos VIP no MU Online, o significado dos níveis 0, 1, 2 e 3, como consultar e editar pelo SQL Server e como integrar esse sistema com GameServer, site e painel administrativo.
O campo AccountLevel é utilizado por diversas sources customizadas de MU Online para representar o nível de benefício ou VIP da conta.
Uma estrutura muito comum trabalha com valores de 0 a 3, onde cada número representa uma categoria diferente de conta.
Entretanto, é importante entender que AccountLevel não é uma padronização universal do MU Online. O significado exato dos números depende da source e da lógica implementada no GameServer.
O que é AccountLevel no MU Online?
AccountLevel normalmente é uma coluna adicionada
à tabela de contas, frequentemente MEMB_INFO,
para indicar qual nível de acesso ou VIP aquela conta possui.
Exemplo:
memb___id AccountLevel
---------- ------------
usuario1 0
usuario2 1
usuario3 2
usuario4 3
O GameServer pode consultar esse valor para decidir quais benefícios serão aplicados à conta.
O que significam VIP 0, 1, 2 e 3?
Uma configuração bastante comum pode ser organizada assim:
| AccountLevel | Exemplo de plano | Uso |
|---|---|---|
| 0 | Free | Conta sem benefício VIP. |
| 1 | VIP Silver | Primeiro nível de benefício. |
| 2 | VIP Prata / Premium | Nível intermediário. |
| 3 | VIP Gold | Nível mais alto dessa estrutura. |
A nomenclatura acima é apenas um exemplo.
AccountLevel na tabela MEMB_INFO
Em muitas sources customizadas, a estrutura pode ser:
MEMB_INFO
memb___id
memb__pwd
AccountLevel
AccountExpireDate
Nesse modelo:
memb___ididentifica a conta;AccountLeveldefine o nível VIP;AccountExpireDatepode definir quando o VIP termina.
Como consultar o AccountLevel de uma conta
SELECT
memb___id,
AccountLevel
FROM MEMB_INFO
WHERE memb___id = 'usuario';
O resultado poderá ser:
memb___id AccountLevel
--------- ------------
usuario 3
Nesse exemplo, a conta possui o nível 3.
Como listar todas as contas VIP
SELECT
memb___id,
AccountLevel
FROM MEMB_INFO
WHERE AccountLevel > 0
ORDER BY AccountLevel DESC;
Essa consulta ignora contas Free com AccountLevel 0.
Como alterar o AccountLevel pelo SQL
Para definir uma conta como nível 3:
UPDATE MEMB_INFO
SET AccountLevel = 3
WHERE memb___id = 'usuario';
Voltar para conta Free
UPDATE MEMB_INFO
SET AccountLevel = 0
WHERE memb___id = 'usuario';
UPDATE MEMB_INFO SET AccountLevel = 0
alteraria todas as contas da tabela.
Faça SELECT antes do UPDATE
SELECT
memb___id,
AccountLevel
FROM MEMB_INFO
WHERE memb___id = 'usuario';
Confirme o resultado antes de executar a alteração.
AccountExpireDate: data de expiração do VIP
Algumas sources utilizam uma coluna adicional como:
AccountExpireDate
Ela pode armazenar a data e hora em que o benefício deve terminar.
Exemplo conceitual:
memb___id AccountLevel AccountExpireDate
---------- ------------ -------------------
usuario 3 2026-12-31 23:59:59
Consultar nível e vencimento
SELECT
memb___id,
AccountLevel,
AccountExpireDate
FROM MEMB_INFO
WHERE memb___id = 'usuario';
O VIP expira sozinho?
Depende da implementação.
Apenas possuir uma coluna chamada
AccountExpireDate não garante que o servidor
fará alguma coisa com ela.
A source precisa possuir lógica para:
- comparar a data atual;
- identificar VIP expirado;
- reduzir AccountLevel;
- atualizar o benefício em memória;
- sincronizar o resultado com a database.
Como o GameServer usa AccountLevel
Uma source pode carregar o AccountLevel da conta durante o login e armazenar esse valor na estrutura do jogador.
Conceitualmente:
Jogador conecta
|
v
JoinServer / sistema de contas
|
v
AccountLevel = 2
|
v
GameServer
|
+-- EXP VIP
+-- Drop VIP
+-- Reset VIP
+-- Comandos VIP
+-- Benefícios customizados
Benefícios diferentes para VIP 0/1/2/3
Dependendo da source, os níveis podem controlar:
- experiência;
- drop;
- nível necessário para reset;
- pontos por reset;
- WCoin recebido;
- comandos exclusivos;
- limite de resets;
- tempo de espera;
- acesso a mapas;
- eventos exclusivos.
Exemplo conceitual de reset
AccountLevel 0 = Level 400
AccountLevel 1 = Level 370
AccountLevel 2 = Level 350
AccountLevel 3 = Level 340
Esses valores são apenas exemplos de uma configuração possível e não representam uma regra do MU Online.
Exemplo de pontos por reset
Free = 110 pontos
VIP 1 = 220 pontos
VIP 2 = 330 pontos
VIP 3 = 400 pontos
O GameServer precisa possuir código ou configuração específica para aplicar essa diferenciação.
AccountLevel no website
Um painel de usuário pode consultar o VIP:
SELECT
AccountLevel,
AccountExpireDate
FROM MEMB_INFO
WHERE memb___id = 'usuario';
Depois, o PHP pode traduzir o valor:
0 = Free
1 = Silver
2 = Prata
3 = Gold
Exemplo em PHP
$vip = intval($row['AccountLevel']);
if ($vip == 1) {
$nomeVip = 'Silver';
} elseif ($vip == 2) {
$nomeVip = 'Prata';
} elseif ($vip == 3) {
$nomeVip = 'Gold';
} else {
$nomeVip = 'Free';
}
Painel administrativo de VIP
Um painel administrativo pode permitir:
- selecionar a conta;
- visualizar o VIP atual;
- alterar AccountLevel;
- definir data de expiração;
- remover VIP;
- registrar a alteração em log.
VIP muda no SQL mas não muda no jogo
Isso pode acontecer quando o GameServer já carregou o AccountLevel para memória.
Dependendo da source, pode ser necessário:
- relogar a conta;
- trocar personagem;
- executar comando de atualização;
- reiniciar algum serviço;
- utilizar rotina própria de reload.
Invalid Column Name 'AccountLevel'
Se aparecer:
Invalid column name 'AccountLevel'
significa que o sistema tentou acessar a coluna, mas ela não existe na tabela atual.
Possíveis causas:
- database de outra source;
- script de instalação ausente;
- website incompatível;
- coluna com outro nome.
AccountLevel sempre volta para 0
Verifique se existe:
- procedure atualizando o campo;
- sistema de expiração;
- website sobrescrevendo a conta;
- GameServer salvando outro valor;
- trigger no SQL;
- script automático de atualização.
VIP expirou mas AccountLevel continua 3
Isso indica que a source pode não alterar automaticamente o AccountLevel após o vencimento.
Algumas implementações verificam a data sem alterar imediatamente o campo. Outras exigem um processo externo.
Consulte a lógica da sua source antes de criar scripts automáticos.
Conta VIP aparece como Free no site
Verifique:
- site conectado à database correta;
- campo correto;
- nome AccountLevel com grafia correta;
- query filtrando a conta correta;
- PHP interpretando 1, 2 e 3 corretamente.
Posso criar AccountLevel 4?
Apenas adicionar o valor 4 na database não cria um quarto VIP.
O GameServer e os demais sistemas precisam possuir lógica para reconhecer esse nível.
Caso a source só trate:
0
1
2
3
o valor 4 pode ser ignorado, cair em comportamento padrão ou gerar resultados inesperados.
Segurança ao editar VIP
Evite permitir que o próprio jogador envie diretamente um valor de AccountLevel para o SQL.
O sistema deve validar:
- usuário autenticado;
- permissão administrativa;
- valores permitidos;
- data válida;
- registro de auditoria;
- origem da alteração.
Checklist do AccountLevel
| Verificação | Resultado esperado |
|---|---|
| AccountLevel | Coluna existe. |
| 0 | Conta Free. |
| 1 | VIP nível 1 conforme sua source. |
| 2 | VIP nível 2 conforme sua source. |
| 3 | VIP nível 3 conforme sua source. |
| GameServer | Reconhece os mesmos níveis. |
| Website | Exibe os nomes corretamente. |
| AccountExpireDate | Integrada quando utilizada. |
| Backup | Realizado antes de mudanças em massa. |
Perguntas frequentes
O que significa AccountLevel 0?
Normalmente representa uma conta Free, sem VIP, quando a source utiliza o sistema 0/1/2/3.
O que significa AccountLevel 1?
Normalmente representa o primeiro nível VIP, mas o nome e os benefícios dependem da source.
O que significa AccountLevel 2?
Geralmente representa um nível VIP intermediário.
O que significa AccountLevel 3?
Em muitas sources, representa o maior nível VIP da estrutura 0/1/2/3.
AccountLevel fica na MEMB_INFO?
Em muitas sources customizadas, sim. Porém, isso deve ser confirmado na sua database.
Posso mudar VIP pelo SQL?
Sim, quando a source utiliza esse campo. Faça a alteração com a conta correta e preserve a lógica de expiração do sistema.
Precisa relogar para atualizar o VIP?
Em muitas implementations, sim, porque o GameServer pode manter o AccountLevel carregado em memória.
Posso usar nomes diferentes para os VIPs?
Sim. Os valores numéricos podem ser exibidos como Silver, Prata, Gold, Premium ou qualquer nomenclatura definida pelo projeto.
Conclusão
O AccountLevel 0/1/2/3 é uma forma comum de organizar níveis VIP em sources customizadas de MU Online.
Uma estrutura típica utiliza 0 para Free e 1, 2 e 3 para níveis progressivos de VIP, mas os nomes e benefícios dependem da implementação.
Para funcionar corretamente, a mesma lógica precisa estar alinhada entre MEMB_INFO, GameServer, JoinServer, website, sistema de reset e data de expiração.
Antes de criar novos níveis ou modificar a estrutura, confirme como a source interpreta AccountLevel e faça backup da database.