20 minutos atrás20 min Licença Lifetime comment_1652 AmbienteDesenvolvo sistemas customizados em Lua (cliente + servidor) no meu servidor, usando a API ClientHooks, GenesysUI, Client.OnPacket, etc.O que eu observeiOs 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 projetosEu 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 pedidoSeria possível vocês disponibilizarem o RML de forma genérica, para eu usar nos meus projetos?Em ordem de preferência:(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).(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çãoVocê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! Relatório
Participe da conversa
Você pode publicar agora e se cadastrar depois. Se você tem uma conta, entre agora para publicar com sua conta.