Pular para o conteúdo
Ver no aplicativo

Uma forma melhor de navegar. Saiba mais.

GN Emulator

Um aplicativo em tela cheia na sua tela inicial com notificações push, distintivos e mais.

Para instalar este aplicativo no iOS e iPadOS
  1. Toque no ícone Compartilhar no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este aplicativo no Android
  1. Toque no menu de 3 pontos (⋮) no canto superior direito do navegador.
  2. Toque em Adicionar à tela inicial ou Instalar aplicativo.
  3. Confirme tocando em Instalar.

Pedido: expor um renderizador RML genérico para sistemas Lua customizados

Respostas Destacadas

  • Licença Lifetime

Ambiente

  • Desenvolvo sistemas customizados em Lua (cliente + servidor) no meu servidor, usando a API ClientHooks, GenesysUI, Client.OnPacket, etc.

O que eu observei

Os sistemas oficiais com a UI mais bonita — Daily Reward, Lucky Wheel (Roleta) e Battle Pass — usam RML (o motor estilo HTML/CSS do RmlUi) para desenhar as janelas, e é por isso que ficam com gradientes, fontes elegantes, cantos arredondados e layout rico.

Mas cada um usa uma função de render própria e compilada dentro do cliente, exclusiva daquele sistema:

  • Client.DailyRewardRmlRender(...)

  • Client.LuckyWheelRmlRender(...)

  • Client.BattlePassRmlRender(...)

(e as auxiliares ...RmlHoveredReward, ...RmlUpdateInput, ...RmlClose, ...RmlTime).

Procurei em toda a API exposta ao Lua (as funções Client.* / ClientAPI.*) e não existe um renderizador RML genérico. Para uma janela nova, criada por mim, só sobram as primitivas de desenho manual (ClientAPI.RenderColorBox, ClientAPI.RenderText, ClientAPI.RenderImage, SetFontType, etc.). Com elas dá pra fazer uma janela funcional, mas não dá pra alcançar o acabamento visual do RML (fontes, gradientes e os elementos decorativos do CSS ficam fora de alcance).

Meus projetos

Eu construo coisas como:

  • Sistema de Quests (NPC por mapa, aceitar quest, rastrear kills, recompensa em pontos/zen) — quero a janela no mesmo nível visual da Roleta/Daily Reward.

  • Sistema de Coleções.

  • E outros sistemas custom no futuro.

Todos ganhariam muito se eu pudesse desenhar a UI em RML, em vez de caixa por caixa.

O pedido

Seria possível vocês disponibilizarem o RML de forma genérica, para eu usar nos meus projetos?

Em ordem de preferência:

  1. (Ideal) Um renderizador RML genérico exposto ao Lua, que qualquer sistema custom possa usar — por exemplo:

    • Client.RmlRender(contextId, rmlString [, dataParaItens]) para desenhar,

    • Client.RmlClose(contextId), Client.RmlHovered(contextId), Client.RmlUpdateInput(contextId) para interação,

    • com suporte a carregar uma folha de estilo (RCSS) própria do meu sistema, ou reutilizar o tema/paleta padrão (os tokens $accent, $window, etc. que já são usados nos documentos RmlUi do cliente).

  2. (Alternativa) Permitir registrar um "documento RML custom" por nome, apontando para um .rml + .rcss meus dentro da pasta de UI do cliente, e me dar um gancho em Lua para abri-lo, preencher dados e tratar os cliques — nos mesmos moldes do que já existe para Daily Reward / Lucky Wheel / Battle Pass, mas genérico.

Observação

Vocês já implementaram exatamente esse mecanismo (RML) para 3 sistemas oficiais; o pedido é só generalizar o acesso para os sistemas Lua dos servidores. Isso destravaria UIs bonitas para toda a comunidade que desenvolve custom, sem precisar de uma recompilação do cliente a cada novo sistema.

Obrigado!

Participe da conversa

Você pode publicar agora e se cadastrar depois. Se você tem uma conta, entre agora para publicar com sua conta.

Convidado
Responder a este tópico...

Conta

Navegação

Procurar

Procurar

Configurar notificações push do navegador

Chrome (Android)
  1. Toque no ícone de cadeado ao lado da barra de endereços.
  2. Toque em Permissões → Notificações.
  3. Ajuste sua preferência.
Chrome (Desktop)
  1. Clique no ícone de cadeado na barra de endereços.
  2. Selecione Configurações do site.
  3. Encontre Notificações e ajuste sua preferência.