Jump to content

OutputChatBox - Colorido


Recommended Posts

Bom, hoje vou está aplicando um tutorial de mensagens coloridas ou mais formal; OutputChatBox colorido; vamos lá!

Instruções Básicas: vamos usar o formato de Cor HEX.
() Lembrando não vai ser um tutorial bem formado a cada função, mais vou tentar explicar o máximo.

uO0XvJM.png

Para nós usarmos o texto colorido basta colocar as cores HEX antes do texto querido, exemplo:

e0Bk4Fw.png

OBS: não precisamos alterar as cores RGB, padrão é usar 255, 255, 255 que são as cores RGB padrão, 'Lembrando; as cores RGB não interferi na resouce'

() - Não entendi ainda! Simples, Nós só adicionamos as cores HEX antes do texto.

______________________________________________________________________

Se eu errei algo me corrigem pois ainda sou novato no assunto .lua
_______________________________________________________________________

:D

Link to comment
  • Moderators
12 hours ago, Mewjas said:

Cara sou novato, quero ajudar pessoas que já teve uma essa dúvida , se você não tiver beleza, fechou. más não critica quem que ajudar até porque ressaltei; Se tiver algo de errado me corrigam.

 

@Mewjas Não leve a mal, mas o que não falta é motivos pra fazer uma crítica construtiva do post.

Tá certo, sempre é bom ver pessoas postando tutoriais, isso até ajuda a si próprio melhorar. Só que vem com isso outras coisas - tutoriais com a lógica toda bagunçada. Nem eu que entendo, não consegui pegar a lógica do texto, fora os erros de Português que dificultam a interpretação.

É bom pra você progredir, ótimo, mas e se tratando de quem lê o post? Será que vai entender um assunto explicado bem por cima e com poucas informações explicado por alguém que tem um domínio fraco do assunto? Então se você vai fazer um tutorial, tenha em mente isso, e também, saiba lidar com críticas, elas servem pra você melhorar; e o tutorial não serve pra aumentar seu ego. Lembre-se também, que já existem posts relacionados na seção Programação em Lua.

  • Like 2
  • Thanks 1
Link to comment

Você poderia ter explicado melhor, os parâmetros 255, 255, 255 usando eles você pode evitar usar uma cor hex.

Exemplos:

-- Com #Hex definindo os parâmetros.

outputChatBox ( "#FF0000Olá DNL ", thePlayer, 255, 255, 255)

-- Sem #Hex

outputChatBox ( "Olá DNL ", thePlayer, 255, 0, 0)

No caso você evitaria de usar um #hex na mensagem. se você quisesse alterar apenas a cor do DNL era só usar um #HEX ao invés de 2

Você também esqueceu de explicar o argumento root usado no output de exemplo. Vou explicar.

root chama a função getRootElement() tanto faz você usar root ou getRootElement(), porém não sei se altera alguma coisa em questão de performance.

No caso getRootElement() é mostrado para todos jogadores, e se você definir um argumento thePlayer por exemplo, mostra apenas para o jogador que utilizou um comando.

 

Exemplo:

function chamarPlayer( thePlayer )	
	outputChatBox ( "Olá DNL ", thePlayer, 255, 0, 0, true)
end
addCommandHandler("teste", chamarPlayer)

 

Exemplo ² - Todos jogadores iram ver a mensagem quando algum jogador usar o comando ' teste '

 

function chamarRoot( )	
	outputChatBox ( "Olá DNL ", root, 255, 0, 0, true)
end
addCommandHandler("teste", chamarRoot)

 

Agora vamos entender sobre o último argumento do output ' true ', nada mais é que justamente o que habilita a #hex no output, você pode usar false ou se preferir deixe sem nada apenas assim por exemplo:

 

function chamarRoot( )	
	outputChatBox ( "Olá DNL ", root ) -- No caso aqui ele envia a mensagem quase branca
  	-- mas se quiser que envie branca basta usar> outputChatBox ( "Olá DNL ", root, 255, 255, 255 ) -- sem o hex no caso..
end
addCommandHandler("teste", chamarRoot)

 

Então - true = Permite usar cores #hex no output

false ou sem nada = Desabilita o uso de #hex no output deixando somente o argumento r,g,b

function chamarRoot( )	
	outputChatBox ( "Olá DNL ", root, 255, 255, 0 )
end
addCommandHandler("teste", chamarRoot)

 

Enfim, só que da próxima vez antes de criar um tutorial, certifique-se se alguém já não fez, ou se fez faça melhor, mas boa tentativa mano, continue tentando aprender sobre .lua.

Edited by OverKILL
  • Like 1
Link to comment
5 minutes ago, OverKILL said:

Você poderia ter explicado melhor, os parâmetros 255, 255, 255 usando eles você pode evitar usar uma cor hex.

Exemplos:

-- Com #Hex definindo os parâmetros.


outputChatBox ( "#FF0000Olá DNL ", player, 255, 255, 255)

-- Sem #Hex


outputChatBox ( "Olá DNL ", player, 255, 0, 0)

No caso você evitaria de usar um #hex na mensagem. se você quisesse alterar apenas a cor do DNL era só usar um #HEX ao invés de 2

Você também esqueceu de explicar o argumento root usado no output de exemplo. Vou explicar.

root chama a função getRootElement() tanto faz você usar root ou getRootElement(), porém não sei se altera alguma coisa em questão de performance.

No caso getRootElement() é mostrado para todos jogadores, e se você definir um argumento thePlayer por exemplo, mostra apenas para o jogador que utilizou um comando.

 

Exemplo:


function chamarPlayer( thePlayer )	
	outputChatBox ( "Olá DNL ", thePlayer, 255, 0, 0, true)
end
addCommandHandler("teste", chamarPlayer)

 

Exemplo ² - Todos jogadores iram ver a mensagem quando algum jogador usar o comando ' teste '

 


function chamarRoot( )	
	outputChatBox ( "Olá DNL ", root, 255, 0, 0, true)
end
addCommandHandler("teste", chamarRoot)

 

Agora vamos entender sobre o último argumento do output ' true ', nada mais é que justamente o que habilita a #hex no output, você pode usar false ou se preferir deixe sem nada apenas assim por exemplo:

 

Então - true = Permite usar cores #hex no output

false ou sem nada = Desabilita o uso de #hex no output deixando somente o argumento r,g,b


function chamarRoot( thePlayer )	
	outputChatBox ( "Olá DNL ", thePlayer )
end
addCommandHandler("teste", chamarRoot)

 

Top, valeeeeeeeeeeeeeeeeeeu!

Link to comment

Também seria bom esclarecer melhor a ideia por trás desses “códigos” que representam as cores…

RGB = Red Green Blue (Vermelho – Verde – Azul). Representam o conjunto de cores primárias aditivas (relacionadas com a incidência de luz sobre elas), cada cor é formada apartir de uma numeração que varia do 0 ao 255 (representando a intensidade daquela cor), sendo que quanto mais próximo do 0, mais escuro será, e quanto mais se aproximar do 255, mais intenso será aquela cor.

Esse esquema de cores está meio que relacionado com as brincadeiras na nossa infância de misturar cores (com guache) e ver qual cor nova forma, ou seja, variando apenas a tonalidade do Vermelho, Verde e Azul podemos formar “todas” as outras cores:
Ex:
O conjunto das cores vermelho, verde e azul representam a cor branca (255, 255, 255)
A ausência das três cores forma o preto (0, 0, 0)
Vermelho com verde forma o amarelo (255, 255, 0)
Vermelho com azul forma o roxo (255, 0, 255)

Hex = Hexadecimal: sistema numérico formado por 16 dígitos (0123456789ABCDEF).
O conjunto de 6 dígitos desse sistema numérico acrescido do símbolo ‘#’ no início forma o código de cor que é utilizado no outputChatBox.
As cores hexadecimais podem ser relacionadas com as cores RGB da seguinte forma: 
- quanto mais próximo do 0, mais escuro e quanto ‘maior’ a letra, mais intenso
- cada par de dígitos representam a tonalidade respectivamente das cores RGB.
Exemplo:
"#RRGGBB" (RR = Nível da tonalidade do red/vermelho, GG = green/verde, BB = blue/azul) - Os algorismos R-G-B não pertencem ao sistema hexadecimal, tornando essa cor inválida (usei apenas para exemplificar a posição relacionando-as com o sistema de cor RGB)

‘F’ é o maior digito hexadecimal, comparando o mesmo em RGB temos o valor 255, com isso podemos citar o seguinte:

#FFFFFF (hex) = 255, 255, 255 (rgb) - branco
#FF0000 = 255, 0, 0 - vermelho
#00FF00 = 0, 255, 0 - verde
#0000FF = 0, 0, 255 - azul

* Mostrei aqui apenas com as tonalidades mínimas e máximas devido à facilidade de comparação/conversão entre RGB <=> Hex.. descobrir o código exato das demais cores “batendo o olho” como foi feito acima já não é mais tão simples, pois passam a exigir inclusive alguns cálculos matemáticos, para isso temos vários conversores de cores na internet (exemplo)

Para quem se interessar:
Conversão RGB para Hex
Conversão Hex para RGB

Edited by MaligNos
  • Like 2
  • Thanks 1
Link to comment
3 minutes ago, Mewjas said:

Pronto, isto mesmo implementou o que havia faltado, agora ninguém está mais com dúvida. ?                    

                                                        Tópico encerrado!
 

Na realidade, acho um pouco exagero de sua parte abordar desta forma, todos estamos tentando te ajudar, poderia ter deixado um like no post do malignos também pra agradecer o tempo que ele perdeu fornecendo esta ótima explicação pra todos nós, e você não tem um cargo superior e não pode finalizar tópicos.

@DNL291

Edited by OverKILL
  • Thanks 1
Link to comment
  • 1 month later...
  • Other Languages Moderators

Olá senhores, depois de um mês desde o último post desse tópico, vim revivê-lo apenas para deixar algumas pequenas correções, visto que esse tópico acabou abordando muito mais informação do que o esperado, e isso é ótimo. Chegaram a abordar até a Teoria das Cores. Quanto mais informação, melhor.

On 23/10/2018 at 15:46, OverKILL said:

root chama a função getRootElement() tanto faz você usar root ou getRootElement(), porém não sei se altera alguma coisa em questão de performance.

Respondendo a sua dúvida, não muda em nada em questão de performance. O root é uma variável interna do MTA que faz exatamente a mesma coisa que o getRootElement(), da mesma forma que usar localPlayer é o mesmo que o getLocalPlayer(). Você pode conferir todas as variáveis pré-definidas do MTA nessa página da Wiki.

 

On 23/10/2018 at 15:46, OverKILL said:

 


function chamarRoot( )	
	outputChatBox ( "Olá DNL ", root ) -- No caso aqui ele envia a mensagem quase branca
  	-- mas se quiser que envie branca basta usar> outputChatBox ( "Olá DNL ", root, 255, 255, 255 ) -- sem o hex no caso..
end
addCommandHandler("teste", chamarRoot)

 

Em relação ao seu comentário da segunda linha do código, ele não irá enviar a mensagem quase branca sempre. Isso depende diretamente da configuração do chat do usuário. O MTA permite que os jogadores configurem as cores padrão do chat, além de fonte, tamanho, etc. Por padrão, o MTA deixa definido a cor do chat em em #E7D9B0. Mas se o usuário configurar para outra cor, então é essa outra cor que vai aparecer. O fato de você não estar declarando uma cor no script, na verdade indica "definido pelo padrão do usuário".

On 24/10/2018 at 00:19, MaligNos said:

Esse esquema de cores está meio que relacionado com as brincadeiras na nossa infância de misturar cores (com guache) e ver qual cor nova forma [...]

É importante deixar claro que existe uma grande diferença entre cores-luz (pixels, luzes) e cores-pigmento (tintas, guache, etc). Nas cores pigmento, quanto mais cor envolvida na mistura, mais escura ela ficará, até se tornar preto, por esse motivo elas são cores subtrativas. Já nas cores-luz, quanto mais cores juntas, mais clara será essa mistura, até chegar no branco, por isso elas são cores aditivas. Outra coisa que vale a pena ressaltar é que as cores primárias de um são diferentes das cores primárias do outro. As cores primárias subtrativas são o Ciano, Magenta, Amarelo e Preto (CMYK). Já as cores primárias aditivas são o Vermelho, Verde e Azul (RGB).

rgbcmyk.jpg

On 24/10/2018 at 00:19, MaligNos said:

‘F’ é o maior digito hexadecimal, comparando o mesmo em RGB temos o valor 255, com isso podemos citar o seguinte:

Na verdade o F representa 15 do RGB se estiver no segundo caractere de seu par no código e representa 240 se estiver no primeiro caractere de seu par. O 255 é representado na verdade por FF.

===============================

Apenas uma última observação: Quando vc cria um tópico novo, ele se mantém editável mesmo após longos períodos de tempo, diferente dos posts cuja edição só é possível logo depois de postado. Isso significa que vc tem total liberdade para editar seu tópico e adicionar as novas informações que foram trazidas e assim melhorar seu tutorial.

Outra coisa: Eu gostaria de pedir desculpas pela minha segunda resposta neste tópico, lendo novamente eu percebi que fui meio arrogante e deveria ter explicado melhor em como fazer um bom tutorial em vez de apenas criticar. Mas enfim, vida que segue. Acho que todos nós aprendemos com este post.

Edited by Lord Henry
  • Like 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...