Ir para conteúdo
  • 0

Duvida!


Starliks

Pergunta

Versão do seu OTServ: estou entre 8.54 e 9.8

 

Dificuldade do pedido: Difícil ou impossível

 

 

Bom a um tempo eu tenho procurado alguma forma de mudar a cor da descrição de alguns items, mais não obtive solução.

Então eu vi um post em que foi possível mudar a cor do nome de mobs, personagem e npcs.

 

Então volto a questão e possível mudar a cor da descrição do item?

 

informaoes.png

 

Pois estou querendo obter um sistema no meu servidor que tenha items com descrição em cor diferentes ex:

 

Items normais = verde

Items raros = azul

Items épicos = amarelo

Items supremos=rosa

 

 

se alguém puder ajudar eu agradeço !

Editado por Starliks
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

oia... pra criar um novo 'tpw' de mensagem deve ser bem tensinhu... achu q teria q mexer bastante nas source pra criar sertinhu isso ae q tu quer... ;x alias, acredito q teria q editar as sources do otc e do serv...

 

oq eu achei aki foi...

modules/game_textmessage/textmessage.lua

MessageSettings = {
 none			= {},
 consoleRed	  = { color = TextColors.red,	consoleTab='Default' },
 consoleOrange   = { color = TextColors.orange, consoleTab='Default' },
 consoleBlue	 = { color = TextColors.blue,   consoleTab='Default' },
 centerRed	   = { color = TextColors.red,	consoleTab='Server Log', screenTarget='lowCenterLabel' },
 centerGreen	 = { color = TextColors.green,  consoleTab='Server Log', screenTarget='highCenterLabel',   consoleOption='showInfoMessagesInConsole' },
 centerWhite	 = { color = TextColors.white,  consoleTab='Server Log', screenTarget='middleCenterLabel', consoleOption='showEventMessagesInConsole' },
 bottomWhite	 = { color = TextColors.white,  consoleTab='Server Log', screenTarget='statusLabel',	   consoleOption='showEventMessagesInConsole' },
 status		  = { color = TextColors.white,  consoleTab='Server Log', screenTarget='statusLabel',	   consoleOption='showStatusMessagesInConsole' },
 statusSmall	 = { color = TextColors.white,						   screenTarget='statusLabel' },
 private		 = { color = TextColors.lightblue,					   screenTarget='privateLabel' }
}

 

e dai a tabela TextColors ta em modules/gamelib/const.lua

TextColors = {
 red	   = '#f55e5e', --'#c83200'
 orange	= '#f36500', --'#c87832'
 yellow	= '#ffff00', --'#e6c832'
 green	 = '#00EB00', --'#3fbe32'
 lightblue = '#5ff7f7',
 blue	  = '#9f9dfd',
 --blue1	 = '#6e50dc',
 --blue2	 = '#3264c8',
 --blue3	 = '#0096c8',
 white	 = '#ffffff', --'#bebebe'
}

 

negocio seria tentar mexer com as cores ae sei la... tentar intender os scripts e fazer alteraçoes... ;/

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

@slicer

 

Eu não entendo nada de otc e entendo um pouco de scripts, você poderia tentar fazer pelo menos a troca de 1 cor e fazer um tutorial ensinando? caso consiga e claro!

Link para o comentário
Compartilhar em outros sites

  • 0

  [MessageModes.Look] = MessageSettings.centerGreen,

 

Você só vai precisar criar uma nova tabela cadastrando os itens e as cores, e depois editar aqui :

 

  centerGreen	 = { color = TextColors.green,  consoleTab='Server Log', screenTarget='highCenterLabel',   consoleOption='showInfoMessagesInConsole' },

 

Para que o script compare o nome ou id do item e depois envie a mensagem conforme a cor

 

TextColors.green é a mesma coisa que #f55e5e

 

Então quando você for fazer sua tabela, na parte onde você adicionar as cores, você só mostra para o script em qual parte ele deve pegar a cor, Exemplo:

 

local itemColor = {
-- id = {color = #f55e5e}
 5248 = {#f55e5e},
}

 

  centerGreen	 = { color =  itemColor[item.itemid].color,  consoleTab='Server Log', screenTarget='highCenterLabel',   consoleOption='showInfoMessagesInConsole' },

 

o item.itemid seria o item aonde eu estou dando look, Veja que esse não é o comando que pega o ID do item, e sim apenas um exemplo para que fique claro.

 

Para pegar o id, você pode ir na parte onde o look é feito, e fazer uma variável que tenha o mesmo valor que o id do item, ai depois você só manda ela para a sua tabela e pronto.

 

 

Edit: Aqui eu fiz um exemplo para itens que tem o valor 96 ( ou seja tem 96 itens juntos )

 

OBS: Não utilize esse meu exemplo, crie uma tabela e faça uma coisa simples e util

 

  if tonumber(string.match(text, "You see (%d+)")) == 96 then
     local label = messagesPanel:recursiveGetChildById(msgtype.screenTarget)
     label:setText(text)
     label:setColor(lightblue)
     label:setVisible(true)
     removeEvent(label.hideEvent)
     label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text))
     if not msgtype then
       perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
       return
     end

     if msgtype == MessageSettings.none then return end

     if msgtype.consoleTab ~= nil and (msgtype.consoleOption == nil or modules.client_options.getOption(msgtype.consoleOption)) then
       modules.game_console.addText(text, lightblue, tr(msgtype.consoleTab))
       --TODO move to game_console
     end
     return true
 end

Editado por BananaFight
Link para o comentário
Compartilhar em outros sites

  • 0

BananaFight

 

Me desculpe mais eu não entendo nada de otclient, sei que vc fez o melhor pra me explicar mais eu não entendi, caso tenha uma forma de explicar de um jeito mais simples, pois eu nem sei por onde começar , não sei o local para criar a tal tabela.

 

 

Creio que eu escolhi uma forma difícil de tentar aprender, rs

Link para o comentário
Compartilhar em outros sites

  • 0

Recomendo que comece a ler tutoriais de lua, para depois tentar se aventurar com scripts, Não tenho como explicar de outra forma, e também não irei fazer pois não quero que acham que estou aqui pra criar scripts para os outros.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...