O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Servidor

Como configurar Ruud e a loja Ruud no MU Online

Aprenda a configurar a moeda Ruud, suas fontes de ganho, a loja Ruud com itens exclusivos e o balanceamento econômico no seu servidor de MU Online.

GA Gabriel · Atualizado em 14 dez 2024 · ⏱ 15 min de leitura
Resposta rápida

O Ruud é uma das moedas especiais mais importantes dos servidores modernos de MU Online. Diferente do Zen — que é abundante e serve ao dia a dia — o Ruud foi desenhado como uma moeda de progressão de endgame: você a ganha em conteúdos difíceis e a gasta em itens que fazem diferença real no personage

O Ruud é uma das moedas especiais mais importantes dos servidores modernos de MU Online. Diferente do Zen — que é abundante e serve ao dia a dia — o Ruud foi desenhado como uma moeda de progressão de endgame: você a ganha em conteúdos difíceis e a gasta em itens que fazem diferença real no personagem. Por isso, configurar o Ruud não é só ligar uma coluna no banco; é desenhar um circuito econômico completo, onde as fontes de ganho, a loja Ruud e o balanceamento conversam entre si. Um circuito mal calibrado quebra o servidor de dois jeitos: se o Ruud é fácil demais, os itens exclusivos perdem valor e o endgame evapora; se é difícil demais, o jogador casual nunca alcança nada e abandona.

Este guia cobre o ciclo completo: entender onde o Ruud vive nos dados, habilitar suas fontes de ganho, montar a loja com itens exclusivos, posicionar o NPC vendedor e — o ponto que mais gente ignora — balancear entrada e saída de moeda. Uso nomes de tabela e arquivo como exemplos; a arquitetura é comum a quase todo emulador, mas os nomes exatos variam por emulador. Se você ainda está montando a base, veja antes o tutorial de como criar servidor de MU Online.

Pré-requisitos

  • Arquivo de servidor moderno com suporte a Ruud (arquivos muito antigos não têm a moeda nativamente).
  • Acesso ao banco de dados com permissão de escrita no banco de jogo (MuOnline na maioria dos casos).
  • Acesso à pasta de dados do GameServer, tipicamente GameServer/Data/.
  • Editor de texto com codificação correta para editar .txt e .ini sem corromper.
  • Backup completo do banco e das configurações antes de qualquer alteração.
  • Personagem GM de teste para validar saldo, loja e limites de compra.
Atenção: Toda alteração em tabelas de loja ou em arquivos de configuração deve ser feita com o GameServer desligado. Editar a quente arrisca perder as mudanças no próximo save ou gerar inconsistência entre memória e disco.

Passo 1: Entender o circuito do Ruud

Antes de mexer em qualquer coisa, visualize o Ruud como um circuito de três estágios:

  1. Ganho (entrada) — de onde o Ruud vem: eventos, mapas, quests, bosses, recompensas de invasão.
  2. Armazenamento — onde o saldo fica gravado: normalmente uma coluna na tabela de personagens.
  3. Gasto (saída) — para onde o Ruud vai: a loja Ruud e seus itens exclusivos.

O balanceamento nada mais é do que manter entrada e saída em equilíbrio. Se a entrada mensal média de um jogador ativo é X e o item mais desejado custa muito mais que alguns meses de X, o item é um objetivo de longo prazo. Se custa menos que uma semana, é descartável. Você decide onde cada item cai nessa régua.

Passo 2: Localizar e verificar o armazenamento do Ruud

O primeiro trabalho técnico é confirmar onde o saldo fica. Na maioria dos emuladores, é uma coluna na tabela de personagens:

USE MuOnline
GO
-- Verificar se a coluna de Ruud existe na tabela de personagens
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Character' AND COLUMN_NAME = 'Ruud'
GO

Se a coluna não existir e o seu emulador esperar que ela exista, crie-a com um valor padrão zerado:

USE MuOnline
GO
ALTER TABLE Character ADD Ruud INT NOT NULL DEFAULT 0
GO
Nota: Alguns emuladores guardam o Ruud por conta, em uma tabela de conta separada, em vez de por personagem. Nesse caso, todos os personagens da mesma conta compartilham o saldo. Confirme o modelo do seu servidor antes de assumir que é por personagem — a diferença muda todo o balanceamento.

Para inspecionar o saldo atual de um personagem:

USE MuOnline
GO
SELECT Name, Ruud FROM Character WHERE Name = 'SeuCharGM'
GO

Passo 3: Configurar as fontes de ganho de Ruud

Aqui está o coração do balanceamento de entrada. Cada fonte que você habilita adiciona Ruud à economia; a soma de todas define o ritmo em que os jogadores acumulam. As fontes clássicas:

FonteCaracterísticaPapel na economia
Eventos temporizados (Blood Castle, Chaos Castle, Devil Square)Recompensa por rodada/nívelFluxo previsível e regular
Bosses de endgameDrop ocasionalPicos de ganho para grupos organizados
Mapas de alto nívelGanho por kill diluídoFarm contínuo de longo prazo
Quests e conquistasRecompensa únicaIncentivo de onboarding e marcos
Invasões customizadasRecompensa coletivaEngajamento de comunidade

A configuração de recompensa de evento costuma viver em um arquivo .ini de recompensas ou numa tabela de configuração. Exemplo em .ini (ilustrativo — varia por emulador):

; Recompensa de Ruud por evento e nível
[BloodCastle]
BC1_Ruud=200
BC4_Ruud=500
BC7_Ruud=1000

[DevilSquare]
DS1_Ruud=150
DS5_Ruud=700

[ChaosCastle]
CC1_Ruud=100
CC7_Ruud=800

Ou via tabela de configuração:

USE MuOnline
GO
-- Ajustar a recompensa de Ruud de um evento (nomes ilustrativos)
UPDATE T_EventRuudConfig
SET RuudReward = 1500
WHERE EventType = 1 AND EventLevel = 7
-- EventType 1 = Blood Castle (exemplo; varia por emulador)
GO
Dica: Comece conservador nas taxas de ganho. É muito mais fácil aumentar uma recompensa depois (jogadores adoram) do que reduzir (jogadores odeiam e sentem que foram enganados). Uma economia inflacionada é quase impossível de consertar sem medidas impopulares.

Passo 4: Montar a loja Ruud

A loja Ruud é a saída principal da moeda. Ela costuma ser definida por uma tabela que lista cada item disponível, com seu preço e restrições. Uma consulta exploratória para ver a estrutura:

USE MuOnline
GO
SELECT TOP 20
    ShopCode, ItemGroup, ItemIndex, ItemLevel, ItemOption,
    Price, ClassFlag, BuyLimit, Enabled
FROM T_RuudShopList
ORDER BY ShopCode
GO

Os campos mais relevantes (nomes ilustrativos):

CampoFunção
ItemGroup / ItemIndexIdentificam qual item está à venda
ItemLevel / ItemOptionNível e opções já embutidas no item vendido
PriceCusto em Ruud
ClassFlagBitmask de classes autorizadas a comprar
BuyLimitLimite de compras por personagem/conta
EnabledLiga/desliga a oferta sem apagá-la

Para adicionar um item exclusivo — por exemplo, uma asa de endgame por 15.000 Ruud, disponível a todas as classes:

USE MuOnline
GO
INSERT INTO T_RuudShopList
    (ShopCode, ItemGroup, ItemIndex, ItemLevel, ItemOption, Price, ClassFlag, BuyLimit, Enabled)
VALUES
    (1, 12, 36, 0, 0, 15000, 255, 0, 1)
-- ClassFlag 255 = todas as classes; BuyLimit 0 = sem limite
GO

Para ajustar o preço de um item já cadastrado:

USE MuOnline
GO
UPDATE T_RuudShopList
SET Price = 8000
WHERE ShopCode = 1 AND ItemGroup = 13 AND ItemIndex = 0
GO
Dica: O campo de classe costuma ser um bitmask: cada classe vale uma potência de 2 (1, 2, 4, 8, ...) e você soma os valores para liberar múltiplas. Um valor "cheio" (como 255) libera todas. Use isso para vender itens de classe específica só para quem pode usá-los, evitando compras por engano.

Passo 5: Definir limites de compra

O limite de compra é a ferramenta mais importante contra o desequilíbrio. Itens muito fortes precisam de um teto por personagem para que a vantagem não seja apenas função de quem tem mais horas livres.

USE MuOnline
GO
-- Limitar item especial a 1 compra por personagem
UPDATE T_RuudShopList
SET BuyLimit = 1
WHERE ShopCode = 1 AND ItemGroup = 12 AND ItemIndex = 36

-- Remover limite de um item de consumo
UPDATE T_RuudShopList
SET BuyLimit = 0
WHERE ShopCode = 1 AND ItemGroup = 14
GO

Se o emulador registra histórico de compras, você pode auditar quem comprou o quê:

USE MuOnline
GO
SELECT TOP 50 CharName, ItemGroup, ItemIndex, Price, BuyDate
FROM T_RuudShopBuyLog
ORDER BY BuyDate DESC
GO

Passo 6: Posicionar o NPC vendedor

A loja precisa de um NPC para ser acessível no mundo. O posicionamento costuma ser feito em um arquivo de spawn de monstros/NPCs (por exemplo GameServer/Data/Monster/MonsterSetBase.txtvaria por emulador). Cada linha define índice do NPC, mapa, coordenadas e direção:

// NPC da Loja Ruud - cidade inicial
// Index  Map  X    Y    Dir  Action  Range
658    0    136  140  0    0       50

Para oferecer a loja em mais de uma cidade, replique a linha com mapas e coordenadas diferentes:

658    3    170  100  0    0       50
658    51   215  45   0    0       50
Atenção: As coordenadas precisam cair dentro de área caminhável do mapa. Um NPC posicionado sobre parede ou fora do grid pode não aparecer, aparecer inacessível, ou travar quem tentar interagir. Use o cliente com exibição de coordenadas para achar um ponto válido no centro da cidade.

Passo 7: Balancear entrada e saída

Com fontes e loja prontas, faça a conta que sustenta a economia. Estime a entrada média mensal de um jogador ativo somando as recompensas realistas das fontes que ele frequenta. Depois, olhe os preços da loja e classifique cada item:

Faixa de preço vs. entrada mensalPercepção do jogadorUso recomendado
Menos de 1 semana de farmDescartávelConsumíveis e conveniências
~1 mês de farmObjetivo de médio prazoMelhorias sólidas de build
Vários meses de farmMeta de endgameItens de prestígio e poder alto

Ajuste até que a curva faça sentido para o público do seu servidor. Um servidor "hard" empurra tudo para a direita; um servidor "easy/fun" concentra à esquerda. O erro fatal é misturar sem intenção — itens poderosos baratos ao lado de cosméticos caros confundem e frustram.

Nota: Reavalie o balanceamento periodicamente. À medida que a população sobe de nível e domina os conteúdos, a entrada real de Ruud cresce e itens antes caros ficam triviais. Um bom servidor introduz novos sumidouros de Ruud (itens novos, upgrades) para absorver a moeda excedente.

Passo 8: Testar o ciclo completo

Antes de abrir aos jogadores, feche o loop com o personagem GM:

  1. Adicione Ruud de teste ao personagem.
  2. Vá até o NPC posicionado e abra a loja.
  3. Confirme que os itens aparecem com preços e restrições corretos.
  4. Compre um item com limite e tente comprar de novo — o limite deve barrar.
  5. Confirme no banco que o Ruud foi debitado no valor certo.
USE MuOnline
GO
-- Creditar Ruud de teste
UPDATE Character SET Ruud = Ruud + 50000 WHERE Name = 'SeuCharGM'
-- Conferir saldo após a compra de teste
SELECT Name, Ruud FROM Character WHERE Name = 'SeuCharGM'
GO

Erros comuns e soluções

SintomaCausa provávelSolução
Loja abre vaziaNenhum item com Enabled = 1 para o ShopCode do NPCAtivar itens e conferir o código da loja do NPC
NPC não aparece no mapaCoordenadas inválidas ou índice de NPC erradoCorrigir spawn e usar coordenadas caminháveis
Ruud não é debitado após compraRotina de compra não escreve na coluna de saldoVerificar a stored procedure/rotina de compra do emulador
Item comprado sem limite apesar de BuyLimitLimite não rastreado por falta de log de compraHabilitar o registro de histórico de compras
Classe errada compra item exclusivoClassFlag mal calculadoRecalcular o bitmask de classes permitidas
Economia inflaciona rápidoFontes de ganho generosas demaisReduzir recompensas de evento e criar novos sumidouros
Saldo de Ruud zera após relogPersistência não grava a coluna de saldoConfirmar que o save de personagem inclui o campo Ruud

Checklist de lançamento

  • Backup completo do banco e das configurações feito e verificado
  • Coluna/tabela de saldo de Ruud confirmada e no modelo certo (conta ou personagem)
  • Fontes de ganho habilitadas com recompensas calibradas
  • Loja Ruud montada com itens exclusivos e preços definidos
  • Limites de compra aplicados aos itens fortes
  • Restrições de classe (bitmask) conferidas em cada item
  • NPC vendedor posicionado em coordenada válida e testado
  • Entrada mensal estimada e preços classificados na régua de balanceamento
  • Ciclo completo (ganhar, abrir loja, comprar, debitar) testado no GM
  • Persistência do saldo confirmada após relog e restart
  • Plano de reavaliação periódica do balanceamento definido

Perguntas frequentes

A partir de qual Season existe o Ruud no MU Online?

O Ruud foi introduzido nas Seasons mais modernas do MU Online como uma moeda ligada a conteúdos de endgame. Em arquivos de servidor antigos (como Season 6 vanilla) ele não existe por padrão e precisa ser implementado ou emulado. Em arquivos modernos ele já vem pronto, embora o nome das tabelas e arquivos varie por emulador.

Onde o saldo de Ruud de cada personagem fica armazenado?

Normalmente em uma coluna dedicada na tabela de personagens do banco de jogo, algo como a coluna Ruud na tabela Character. Alguns emuladores guardam o Ruud por conta em vez de por personagem. Verifique a estrutura do seu banco antes de escrever qualquer comando de saldo.

Posso limitar quantas vezes um item da loja Ruud pode ser comprado?

Sim, a maioria dos emuladores expõe um campo de limite de compra por personagem ou por conta na tabela da loja. Definir esse limite é essencial para itens muito fortes, evitando que um único jogador acumule vantagem desproporcional só por ter mais tempo de farm.

Como faço o Ruud cair de um evento específico?

Você associa a recompensa de Ruud à configuração do evento — seja num arquivo .ini de recompensas, seja numa tabela de configuração de evento. O valor concedido por rodada e por nível do evento é definido ali. A granularidade e os nomes exatos variam por emulador.

Se eu mudar o preço de um item na loja Ruud, os jogadores que já compraram são afetados?

Não. O preço só se aplica no momento da compra. Alterar o valor na tabela muda o custo das próximas compras, mas não retroage sobre itens já adquiridos nem devolve ou cobra diferença de quem comprou antes.

GA
Editor de guias e builds

Gabriel cobre gameplay, builds de classes, PvP e progressão. Testa cada estratégia em servidor antes de publicar.

Continue lendo

Artigos relacionados