Ir para conteúdo

[OtClient] Mensagem Personalizada


Gengo

Posts Recomendados

4 horas atrás, Taiger disse:

Aqui funcionou mas só em vermelho, quando colocava a cor e aquela barrinha aparecia msg verde normal no meio da tela.

 

textmessage.lua

 

 

  Mostrar conteúdo oculto

 

 


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' }
}

MessageTypes = {
  [MessageModes.MonsterSay] = MessageSettings.consoleOrange,
  [MessageModes.MonsterYell] = MessageSettings.consoleOrange,
  [MessageModes.BarkLow] = MessageSettings.consoleOrange,
  [MessageModes.BarkLoud] = MessageSettings.consoleOrange,
  [MessageModes.Failure] = MessageSettings.statusSmall,
  [MessageModes.Login] = MessageSettings.bottomWhite,
  [MessageModes.Game] = MessageSettings.centerWhite,
  [MessageModes.Status] = MessageSettings.status,
  [MessageModes.Warning] = MessageSettings.centerRed,
  [MessageModes.Look] = MessageSettings.centerGreen,
  [MessageModes.Loot] = MessageSettings.centerGreen,
  [MessageModes.Red] = MessageSettings.consoleRed,
  [MessageModes.Blue] = MessageSettings.consoleBlue,
  [MessageModes.PrivateFrom] = MessageSettings.consoleBlue,

  [MessageModes.DamageDealed] = MessageSettings.status,
  [MessageModes.DamageReceived] = MessageSettings.status,
  [MessageModes.Heal] = MessageSettings.status,
  [MessageModes.Exp] = MessageSettings.status,

  [MessageModes.DamageOthers] = MessageSettings.none,
  [MessageModes.HealOthers] = MessageSettings.none,
  [MessageModes.ExpOthers] = MessageSettings.none,

  [MessageModes.TradeNpc] = MessageSettings.centerWhite,
  [MessageModes.Guild] = MessageSettings.centerWhite,
  [MessageModes.PartyManagement] = MessageSettings.centerWhite,
  [MessageModes.TutorialHint] = MessageSettings.centerWhite,
  [MessageModes.Market] = MessageSettings.centerWhite,
  [MessageModes.BeyondLast] = MessageSettings.centerWhite,
  [MessageModes.Report] = MessageSettings.consoleRed,
  [MessageModes.HotkeyUse] = MessageSettings.centerGreen,

  [254] = MessageSettings.private
}

messagesPanel = nil

function init()
  connect(g_game, 'onTextMessage', displayMessage)
  connect(g_game, 'onGameEnd', clearMessages)
  messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
end

function terminate()
  disconnect(g_game, 'onTextMessage', displayMessage)
  disconnect(g_game, 'onGameEnd',clearMessages)
  clearMessages()
  messagesPanel:destroy()
end

function calculateVisibleTime(text)
  return math.max(#text * 100, 4000)
end

function displayMessage(mode, text)
  if not g_game.isOnline() then return end

  local msgtype = MessageTypes[mode]

  if not msgtype then
    perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
    return
  end

  if msgtype == MessageSettings.none then return end
  
  if mode == MessageModes.Warning then
    local label = messagesPanel:recursiveGetChildById('customMessage')
    local color = msgtype.color
    
    if ( text:find('|') ) then
        color = text:explode('|')[1]
        text  = text:explode('|')[2]
    end

    label:setText(text)
    label:setColor(color)
    label:setBorderColor(color)
    label:setWidth(label:getTextSize().width+110)
    label:show()
    
    addEvent(function() g_effects.fadeIn(label, 250) end)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() 
    addEvent(function() g_effects.fadeOut(label, 250) end)
    scheduleEvent(function() label:hide() end, 250) 
    end, calculateVisibleTime(text))
    return 
  end

  if msgtype.consoleTab ~= nil and (msgtype.consoleOption == nil or modules.client_options.getOption(msgtype.consoleOption)) then
    modules.game_console.addText(text, msgtype, tr(msgtype.consoleTab))
  end

  if msgtype.screenTarget then
    if string.find(text, '12//,') or string.find(text, '12|,') or string.find(text, 'p#,') or string.find(text, '12&,') or string.find(text, '#ph#,') then
    return
         end
             if string.find(text, '@pokedex') and not string.find(text, 'MySelf') then
       local t = string.explode(text, "/")
          modules.Base.init2(t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15], t[16], t[17], text)
          return
    elseif string.find(text, 'MySelf') and string.find(text, '@pokedex') then 
            modules.Base.init3(text)
         return
    elseif string.find(text, '@dex') then 
    local t = string.explode(text, "/")
            modules.Base.init4(t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15], t[16], t[17], text)
         return
    elseif string.find(text, "%#CatcherWindow@") then
        return
    elseif string.find(text, "%#Pokedex") then
        return 
         end
    local label = messagesPanel:recursiveGetChildById(msgtype.screenTarget)
    label:setText(text)
    label:setColor(msgtype.color)
    label:setVisible(true)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text))
end
end

function displayPrivateMessage(text)
  displayMessage(254, text)
end

function displayStatusMessage(text)
  displayMessage(MessageModes.Status, text)
end

function displayFailureMessage(text)
  displayMessage(MessageModes.Failure, text)
end

function displayGameMessage(text)
  displayMessage(MessageModes.Game, text)
end

function displayBroadcastMessage(text)
  displayMessage(MessageModes.Warning, text)
end

function clearMessages()
  for _i,child in pairs(messagesPanel:recursiveGetChildren()) do
    if child:getId():match('Label') then
      child:hide()
      removeEvent(child.hideEvent)
    end
  end
end

function LocalPlayer:onAutoWalkFail(player)
  modules.game_textmessage.displayFailureMessage(tr('There is no way.'))
end
 

 

 

 

broadcast.lua

 

 

  Ocultar conteúdo

 

 


function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end

    local t = string.explode(param, " ", 1)
    if(not t[2]) then
        doBroadcastMessage(t[1])
    elseif(not doBroadcastMessage(t[2], MESSAGE_TYPES[t[1]])) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bad message color type.")
    end

    return true
end
 

 

 

 

Esse é o broadcast do meu server, testei o que vc postou e dai nao funciona o sistema.


Essa personalização só ira funcionar com a mensagem do broadcast mesmo, agora aquelas outras mensagem com a cor verde no meio da tela, eu não fiz para que funcionasse para elas, somente para o broadcast, segue o código do broadcast que eu utilizo no servidor:
 

Spoiler

function onSay(cid, words, param, channel)
	if(param == '') then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
		return true
	end
	doBroadcastMessage(param)
	return true
end
-- <talkaction log="yes" words="/bc" access="4" event="script" value="broadcastclass.lua"/>

 

 

Eu vi o seu código do textmessage.lua e está certo, se ainda estiver com dificuldades o erro pode ser que você não colocou certo a parte do arquivo do .otui

Link para o comentário
Compartilhar em outros sites

SHOW MAN realmente é um belo sistema que da um puta diferencial no servidor :) 

Este é o do meu servidor!!

Screenshot_4.thumb.png.d2bbe432b682170163a26e951712f65d.pngScreenshot_5.thumb.png.09eb778c4936f46b149aabd6b0edb900.png

Screenshot_6.thumb.png.8d25d7da2ade021c24792babfe24e2bf.png

 

Tem animação todos eles, quem quiser ver como fica ta ai os links de cada um.

https://giphy.com/gifs/pokezring-broadcast-sistem-kDNEYyy6Zg8D5BjKdS/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-U51S5KTnjh4DS5eSTB/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-L4aVxxMubaTuj33rf3/fullscreen

Link para o comentário
Compartilhar em outros sites

Em 22/06/2019 em 12:57, Gengo disse:

 

Hoje venho trazer um sistema que pode deixar seu servidor com um diferencial dos demais, espero que vocês possam aprender algo com esse sistema e criar outros tipos de personalização nas mensagens.

 

 

O que seria essa personalização?

Seria uma personalização da mensagem do broadcast, em vez de ficar aquela mensagem vermelha no meio da tela, você pode escolher sua própria cor para a mensagem, no fim do tópico demonstrarei com imagens para que você possa entender melhor.

 

 

Script:
Procure pela pasta no seu otclient em modules/game_textmessage e abra o arquivo textmessage.otui e substitua por esse:

  Mostrar conteúdo oculto


TextMessageLabel < UILabel
  font: verdana-11px-rounded
  text-align: center
  text-wrap: true
  text-auto-resize: true
  margin-bottom: 2
  visible: false

Panel
  anchors.fill: gameMapPanel
  focusable: false

  Panel
    id: centerTextMessagePanel
    layout:
      type: verticalBox
      fit-children: true
    width: 360
    anchors.centerIn: parent

    TextMessageLabel
      id: highCenterLabel
    TextMessageLabel
      id: middleCenterLabel
    TextMessageLabel
      id: lowCenterLabel

  TextMessageLabel
    id: privateLabel
    anchors.top: parent.top
    anchors.bottom: centerTextMessagePanel.top
    anchors.horizontalCenter: parent.horizontalCenter
    text-auto-resize: false
    width: 275

  TextMessageLabel
    id: statusLabel
    anchors.bottom: parent.bottom
    anchors.left: parent.left
    anchors.right: parent.right

  TextMessageLabel
    id: customMessage
    height: 32
    anchors.top: parent.top
    anchors.horizontalCenter: parent.horizontalCenter
    background-color: #00000890
    border: 1 #cc0c0c
    margin-top: 80
    text-auto-resize: false
    text-wrap: false

 

 

Agora na mesma pasta abra o arquivo textmessage.lua e procure pela função displayMessage e debaixo de:


if msgtype == MessageSettings.none then return end

Coloque o seguinte script:

  Mostrar conteúdo oculto


  if mode == MessageModes.Warning then
	local label = messagesPanel:recursiveGetChildById('customMessage')
	local color = msgtype.color
	
	if ( text:find('|') ) then
		color = text:explode('|')[1]
		text  = text:explode('|')[2]
	end

	label:setText(text)
	label:setColor(color)
	label:setBorderColor(color)
	label:setWidth(label:getTextSize().width+110)
	label:show()
	
	addEvent(function() g_effects.fadeIn(label, 250) end)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() 
		addEvent(function() g_effects.fadeOut(label, 250) end)
		scheduleEvent(function() label:hide() end, 250) 
	end, calculateVisibleTime(text))
	return 
  end

 

 

 

 Feito essas alterações a personalização já deve estar funcionando, para testar você pode utilizar o seguinte comando:
 


/bc green | O torneio mundial da Elite Four se iniciará em 15min.

 Onde /bc é o comando broadcast 

 green é a cor que deseja personalizar, pode ser tanto em hexa como o nome da cor 

 mensagem qualquer
 É necessário colocar o pipeline |  caso queira colocar uma outra cor, senão ele assumirá como padrão a cor vermelha do broadcast.

 

Caso você não tenha o script do broadcast, porem é impossivel não ter já que é padrão nos servidores, vou deixar disponível aqui:

  Mostrar conteúdo oculto

 

Coloque na pasta do seu servidor em talkaction com o nome de broadocast.lua e coloque o seguinte:
 



function onSay(cid, words, param, channel)
	if(param == '') then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
		return true
	end
	local t = string.explode(param, " ", 1)
	doBroadcastMessage(param)
	return true
end

Coloque a tag no arquivo talkaction.xml:



<talkaction log="yes" words="/bc" access="4" event="script" value="broadcastclass.lua"/>

 

 

 

 

Imagens de como fica in-game:

  Mostrar conteúdo oculto

phLMbIM.pngVU9rPkN.png

 

Eai, vai ficar de fora? 
Implemente já essa personalização e torne-se um servidor diferenciado dos demais.

poderia me ajuda o meu nao apareceu a jenelinha so a letra tipo so a mensagem mesmo

 

function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, " ", 1)
    doBroadcastMessage(param)
    return true
end

Em 01/07/2019 em 16:18, Walox disse:

SHOW MAN realmente é um belo sistema que da um puta diferencial no servidor :) 

Este é o do meu servidor!!

Screenshot_4.thumb.png.d2bbe432b682170163a26e951712f65d.pngScreenshot_5.thumb.png.09eb778c4936f46b149aabd6b0edb900.png

Screenshot_6.thumb.png.8d25d7da2ade021c24792babfe24e2bf.png

 

Tem animação todos eles, quem quiser ver como fica ta ai os links de cada um.

https://giphy.com/gifs/pokezring-broadcast-sistem-kDNEYyy6Zg8D5BjKdS/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-U51S5KTnjh4DS5eSTB/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-L4aVxxMubaTuj33rf3/fullscreen

como voce fez isso

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
Spoiler

TextMessage:

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' }
}

MessageTypes = {
  [MessageModes.MonsterSay] = MessageSettings.consoleOrange,
  [MessageModes.MonsterYell] = MessageSettings.consoleOrange,
  [MessageModes.BarkLow] = MessageSettings.consoleOrange,
  [MessageModes.BarkLoud] = MessageSettings.consoleOrange,
  [MessageModes.Failure] = MessageSettings.statusSmall,
  [MessageModes.Login] = MessageSettings.bottomWhite,
  [MessageModes.Game] = MessageSettings.centerWhite,
  [MessageModes.Status] = MessageSettings.status,
  [MessageModes.Warning] = MessageSettings.centerRed,
  [MessageModes.Look] = MessageSettings.centerGreen,
  [MessageModes.Loot] = MessageSettings.centerGreen,
  [MessageModes.Red] = MessageSettings.consoleRed,
  [MessageModes.Blue] = MessageSettings.consoleBlue,
  [MessageModes.PrivateFrom] = MessageSettings.consoleBlue,

  [MessageModes.DamageDealed] = MessageSettings.status,
  [MessageModes.DamageReceived] = MessageSettings.status,
  [MessageModes.Heal] = MessageSettings.status,
  [MessageModes.Exp] = MessageSettings.status,

  [MessageModes.DamageOthers] = MessageSettings.none,
  [MessageModes.HealOthers] = MessageSettings.none,
  [MessageModes.ExpOthers] = MessageSettings.none,

  [MessageModes.TradeNpc] = MessageSettings.centerWhite,
  [MessageModes.Guild] = MessageSettings.centerWhite,
  [MessageModes.PartyManagement] = MessageSettings.centerWhite,
  [MessageModes.TutorialHint] = MessageSettings.centerWhite,
  [MessageModes.Market] = MessageSettings.centerWhite,
  [MessageModes.BeyondLast] = MessageSettings.centerWhite,
  [MessageModes.Report] = MessageSettings.consoleRed,
  [MessageModes.HotkeyUse] = MessageSettings.centerGreen,

  [254] = MessageSettings.private
}

messagesPanel = nil

function init()
  connect(g_game, 'onTextMessage', displayMessage)
  connect(g_game, 'onGameEnd', clearMessages)
  messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
end

function terminate()
  disconnect(g_game, 'onTextMessage', displayMessage)
  disconnect(g_game, 'onGameEnd',clearMessages)
  clearMessages()
  messagesPanel:destroy()
end

function calculateVisibleTime(text)
  return math.max(#text * 100, 4000)
end

function displayMessage(mode, text)
  if not g_game.isOnline() then return end

  if text:find('#<=>#ModOpcode#<=>#') then return end

  local msgtype = MessageTypes[mode]

  if not msgtype then
    perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
    return
  end

  if msgtype == MessageSettings.none then return end
    if mode == MessageModes.Warning then
    local label = messagesPanel:recursiveGetChildById('customMessage')
    local color = msgtype.color
    
    if ( text:find('|') ) then
        color = text:explode('|')[1]
        text  = text:explode('|')[2]
    end

    label:setText(text)
    label:setColor(color)
    label:setBorderColor(color)
    label:setWidth(label:getTextSize().width+110)
    label:show()
    
    addEvent(function() g_effects.fadeIn(label, 250) end)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() 
        addEvent(function() g_effects.fadeOut(label, 250) end)
        scheduleEvent(function() label:hide() end, 250) 
    end, calculateVisibleTime(text))
    return 
  end

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

  if msgtype.screenTarget then
    if string.find(text, '12//,') or string.find(text, '12|,') or string.find(text, 'p#,') or string.find(text, '12&,') or string.find(text, '#ph#,') then
    return     --alterado!
    end   
    local label = messagesPanel:recursiveGetChildById(msgtype.screenTarget)
    label:setText(text)
    label:setColor(msgtype.color)
    label:setVisible(true)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text))
  end
end

function displayPrivateMessage(text)
  displayMessage(254, text)
end

function displayStatusMessage(text)
  displayMessage(MessageModes.Status, text)
end

function displayFailureMessage(text)
  displayMessage(MessageModes.Failure, text)
end

function displayGameMessage(text)
  displayMessage(MessageModes.Game, text)
end

function displayBroadcastMessage(text)
  displayMessage(MessageModes.Warning, text)
end

function clearMessages()
  for _i,child in pairs(messagesPanel:recursiveGetChildren()) do
    if child:getId():match('Label') then
      child:hide()
      removeEvent(child.hideEvent)
    end
  end
end

function LocalPlayer:onAutoWalkFail(player)
  modules.game_textmessage.displayFailureMessage(tr('There is no way.'))
end

Spoiler

Broadcast:

function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, " ", 1)
    doBroadcastMessage(param)
    return true
end

 

 

Alguem me ajuda porfavor? '-' 

Ligo o servidor, e quando vou digitar: /bc green | dkgnskfgnjsdf não vai '-'

Se alguem puder me dizer noq eu errei ai agradeço

Link para o comentário
Compartilhar em outros sites

53 minutos atrás, SmUhash disse:
  Mostrar conteúdo oculto

TextMessage:

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' }
}

MessageTypes = {
  [MessageModes.MonsterSay] = MessageSettings.consoleOrange,
  [MessageModes.MonsterYell] = MessageSettings.consoleOrange,
  [MessageModes.BarkLow] = MessageSettings.consoleOrange,
  [MessageModes.BarkLoud] = MessageSettings.consoleOrange,
  [MessageModes.Failure] = MessageSettings.statusSmall,
  [MessageModes.Login] = MessageSettings.bottomWhite,
  [MessageModes.Game] = MessageSettings.centerWhite,
  [MessageModes.Status] = MessageSettings.status,
  [MessageModes.Warning] = MessageSettings.centerRed,
  [MessageModes.Look] = MessageSettings.centerGreen,
  [MessageModes.Loot] = MessageSettings.centerGreen,
  [MessageModes.Red] = MessageSettings.consoleRed,
  [MessageModes.Blue] = MessageSettings.consoleBlue,
  [MessageModes.PrivateFrom] = MessageSettings.consoleBlue,

  [MessageModes.DamageDealed] = MessageSettings.status,
  [MessageModes.DamageReceived] = MessageSettings.status,
  [MessageModes.Heal] = MessageSettings.status,
  [MessageModes.Exp] = MessageSettings.status,

  [MessageModes.DamageOthers] = MessageSettings.none,
  [MessageModes.HealOthers] = MessageSettings.none,
  [MessageModes.ExpOthers] = MessageSettings.none,

  [MessageModes.TradeNpc] = MessageSettings.centerWhite,
  [MessageModes.Guild] = MessageSettings.centerWhite,
  [MessageModes.PartyManagement] = MessageSettings.centerWhite,
  [MessageModes.TutorialHint] = MessageSettings.centerWhite,
  [MessageModes.Market] = MessageSettings.centerWhite,
  [MessageModes.BeyondLast] = MessageSettings.centerWhite,
  [MessageModes.Report] = MessageSettings.consoleRed,
  [MessageModes.HotkeyUse] = MessageSettings.centerGreen,

  [254] = MessageSettings.private
}

messagesPanel = nil

function init()
  connect(g_game, 'onTextMessage', displayMessage)
  connect(g_game, 'onGameEnd', clearMessages)
  messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
end

function terminate()
  disconnect(g_game, 'onTextMessage', displayMessage)
  disconnect(g_game, 'onGameEnd',clearMessages)
  clearMessages()
  messagesPanel:destroy()
end

function calculateVisibleTime(text)
  return math.max(#text * 100, 4000)
end

function displayMessage(mode, text)
  if not g_game.isOnline() then return end

  if text:find('#<=>#ModOpcode#<=>#') then return end

  local msgtype = MessageTypes[mode]

  if not msgtype then
    perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
    return
  end

  if msgtype == MessageSettings.none then return end
    if mode == MessageModes.Warning then
    local label = messagesPanel:recursiveGetChildById('customMessage')
    local color = msgtype.color
    
    if ( text:find('|') ) then
        color = text:explode('|')[1]
        text  = text:explode('|')[2]
    end

    label:setText(text)
    label:setColor(color)
    label:setBorderColor(color)
    label:setWidth(label:getTextSize().width+110)
    label:show()
    
    addEvent(function() g_effects.fadeIn(label, 250) end)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() 
        addEvent(function() g_effects.fadeOut(label, 250) end)
        scheduleEvent(function() label:hide() end, 250) 
    end, calculateVisibleTime(text))
    return 
  end

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

  if msgtype.screenTarget then
    if string.find(text, '12//,') or string.find(text, '12|,') or string.find(text, 'p#,') or string.find(text, '12&,') or string.find(text, '#ph#,') then
    return     --alterado!
    end   
    local label = messagesPanel:recursiveGetChildById(msgtype.screenTarget)
    label:setText(text)
    label:setColor(msgtype.color)
    label:setVisible(true)
    removeEvent(label.hideEvent)
    label.hideEvent = scheduleEvent(function() label:setVisible(false) end, calculateVisibleTime(text))
  end
end

function displayPrivateMessage(text)
  displayMessage(254, text)
end

function displayStatusMessage(text)
  displayMessage(MessageModes.Status, text)
end

function displayFailureMessage(text)
  displayMessage(MessageModes.Failure, text)
end

function displayGameMessage(text)
  displayMessage(MessageModes.Game, text)
end

function displayBroadcastMessage(text)
  displayMessage(MessageModes.Warning, text)
end

function clearMessages()
  for _i,child in pairs(messagesPanel:recursiveGetChildren()) do
    if child:getId():match('Label') then
      child:hide()
      removeEvent(child.hideEvent)
    end
  end
end

function LocalPlayer:onAutoWalkFail(player)
  modules.game_textmessage.displayFailureMessage(tr('There is no way.'))
end

  Mostrar conteúdo oculto

Broadcast:

function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
        return true
    end
    local t = string.explode(param, " ", 1)
    doBroadcastMessage(param)
    return true
end

 

 

Alguem me ajuda porfavor? '-' 

Ligo o servidor, e quando vou digitar: /bc green | dkgnskfgnjsdf não vai '-'

Se alguem puder me dizer noq eu errei ai agradeço

Pressione Ctrl+T e veja se no terminal apresenta algum erro e veja também se você configurou certo no arquivo otui

Em 14/07/2019 em 19:10, Jedediasisme disse:

Não sei pq, mas com seu script não mostra nada. 

O meu bc manda mensagem é no Server log, nao mostra no centro da tela.

 

O que eu faço?

Não apresenta nenhum erro?

Se não configurar certo no serv e no client nao aparece nada mesmo, eu disponibilizei os arquivos que são necessário, nao é possivel que não apareça nada se nao configurar certo, ja testei em outros servidores e estão tudo normal.

Link para o comentário
Compartilhar em outros sites

Em 01/07/2019 em 16:18, Walox disse:

SHOW MAN realmente é um belo sistema que da um puta diferencial no servidor :) 

Este é o do meu servidor!!

Screenshot_4.thumb.png.d2bbe432b682170163a26e951712f65d.pngScreenshot_5.thumb.png.09eb778c4936f46b149aabd6b0edb900.png

Screenshot_6.thumb.png.8d25d7da2ade021c24792babfe24e2bf.png

 

Tem animação todos eles, quem quiser ver como fica ta ai os links de cada um.

https://giphy.com/gifs/pokezring-broadcast-sistem-kDNEYyy6Zg8D5BjKdS/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-U51S5KTnjh4DS5eSTB/fullscreen

https://giphy.com/gifs/pokezring-broadcast-sistem-L4aVxxMubaTuj33rf3/fullscreen

Desculpa reviver isso mais mano pode me dizer como vocês fez pra por essa imagem na mensagem e esse efeito dela saído meio que tivessem digitalizado na hora ali ? 

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Aqui no geral funcionou porem quando uso /bc green aparece escrito de verde no chat bonitinho mas não mostra lá em cima, também os logs automaticos tipo "curta nossa pagina do facebook" tals não mostra lá em cima só no chat também, não geral nem um erro no ctrl t

Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 8 months later...
  • 3 weeks later...

Também não funcionou aqui, configurei certinho mas só aparece a mensagem nos registros do servidor, não parece no centro nem em cima.

Link para o comentário
Compartilhar em outros sites

16 horas atrás, ducb disse:

Também não funcionou aqui, configurei certinho mas só aparece a mensagem nos registros do servidor, não parece no centro nem em cima.

Viu no terminal se deu algum erro? CTRL T

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...