Ir para conteúdo
  • 0

[ Pedido ] Alguém Me Ajuda Pfv, Isso É Um Passo Para O Target Bonito Da Pxg


Developer Berg

Pergunta

Olá Gente, é o seguinte, uma script minha aqui está configurada só para mudar a cor, queria que ao invés de mudar a cor, dessas tags, podesse adicionar uma imagem.

 

Tags que estou falando.

local CreatureButtonColors = {
  onIdle = {notHovered = '#888888', hovered = '#FFFFFF' },
  onTargeted = {notHovered = '#FF0000', hovered = '#FF8888' },
  onFollowed = {notHovered = '#00FF00', hovered = '#88FF88' }
}

Script.

 

 

 

-- @docclass
UICreatureButton = extends(UIWidget, "UICreatureButton")

local CreatureButtonColors = {
  onIdle = {notHovered = '#888888', hovered = '#FFFFFF' },
  onTargeted = {notHovered = '#FF0000', hovered = '#FF8888' },
  onFollowed = {notHovered = '#00FF00', hovered = '#88FF88' }
}

local LifeBarColors = {} -- Must be sorted by percentAbove
table.insert(LifeBarColors, {percentAbove = 92, color = '#00BC00' } )
table.insert(LifeBarColors, {percentAbove = 60, color = '#50A150' } )
table.insert(LifeBarColors, {percentAbove = 30, color = '#A1A100' } )
table.insert(LifeBarColors, {percentAbove = 8, color = '#BF0A0A' } )
table.insert(LifeBarColors, {percentAbove = 3, color = '#910F0F' } )
table.insert(LifeBarColors, {percentAbove = -1, color = '#850C0C' } )

function UICreatureButton.create()
  local button = UICreatureButton.internalCreate()
  button:setFocusable(false)
  button.creature = nil
  button.isHovered = false
  button.isTarget = false
  button.isFollowed = false
  return button
end

function UICreatureButton:setCreature(creature)
    self.creature = creature
end

function UICreatureButton:getCreature()
  return self.creature
end

function UICreatureButton:getCreatureId()
    return self.creature:getId()
end

function UICreatureButton:setup(creature)
  self.creature = creature

  local creatureWidget = self:getChildById('creature')
  local labelWidget = self:getChildById('label')
  local lifeBarWidget = self:getChildById('lifeBar')

  labelWidget:setText(creature:getName())
  creatureWidget:setCreature(creature)

  self:setId('CreatureButton_' .. creature:getName():gsub('%s','_'))
  self:setLifeBarPercent(creature:getHealthPercent())

  self:updateSkull(creature:getSkull())
  self:updateEmblem(creature:getEmblem())
end

function UICreatureButton:update()
  local color = CreatureButtonColors.onIdle
  if self.isTarget then
    color = CreatureButtonColors.onTargeted
  elseif self.isFollowed then
    color = CreatureButtonColors.onFollowed
  end
  color = self.isHovered and color.hovered or color.notHovered

  if self.isHovered or self.isTarget or self.isFollowed then
    self.creature:showStaticSquare(color)
    self:getChildById('creature'):setBorderWidth(1)
    self:getChildById('creature'):setBorderColor(color)
    self:getChildById('label'):setColor(color)
  else
    self.creature:hideStaticSquare()
    self:getChildById('creature'):setBorderWidth(0)
    self:getChildById('label'):setColor(color)
  end
end

function UICreatureButton:updateSkull(skullId)
  if not self.creature then
    return
  end
  local skullId = skullId or self.creature:getSkull()
  local skullWidget = self:getChildById('skull')
  local labelWidget = self:getChildById('label')

  if skullId ~= SkullNone then
    skullWidget:setWidth(skullWidget:getHeight())
    local imagePath = getSkullImagePath(skullId)
    skullWidget:setImageSource(imagePath)
    labelWidget:setMarginLeft(5)
  else
    skullWidget:setWidth(0)
    if self.creature:getEmblem() == EmblemNone then
      labelWidget:setMarginLeft(2)
    end
  end
end

function UICreatureButton:updateEmblem(emblemId)
  if not self.creature then
    return
  end
  local emblemId = emblemId or self.creature:getEmblem()
  local emblemWidget = self:getChildById('emblem')
  local labelWidget = self:getChildById('label')

  if emblemId ~= EmblemNone then
    emblemWidget:setWidth(emblemWidget:getHeight())
    local imagePath = getEmblemImagePath(emblemId)
    emblemWidget:setImageSource(imagePath)
    emblemWidget:setMarginLeft(5)
    labelWidget:setMarginLeft(5)
  else
    emblemWidget:setWidth(0)
    emblemWidget:setMarginLeft(0)
    if self.creature:getSkull() == SkullNone then
      labelWidget:setMarginLeft(2)
    end
  end
end

function UICreatureButton:setLifeBarPercent(percent)
  local lifeBarWidget = self:getChildById('lifeBar')
  lifeBarWidget:setPercent(percent)

  local color
  for i, v in pairs(LifeBarColors) do
    if percent > v.percentAbove then
      color = v.color
      break
    end
  end

  lifeBarWidget:setBackgroundColor(color)
end

 

 


Up
Up

Up


Up


Up


Up

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

14 respostass a esta questão

Posts Recomendados

  • 0

bem,que eu sei esse são codigos de cores:

onIdle = {notHovered = '#888888', hovered = '#FFFFFF' },

onTargeted = {notHovered = '#FF0000', hovered = '#FF8888' },

onFollowed = {notHovered = '#00FF00', hovered = '#88FF88' }

 

que pode ser vistos em editores como photoshop,não sei se algo a haver!

 

 

ss, eu mudei todos ai, e mudou a cor do target, follow, só n sei pra que server esse " onIdle " quero que alguém edite essa script, para em vez de ter essas cores ai, a pessoa poder por uma imagem, ou uma sprite effect

Link para o comentário
Compartilhar em outros sites

  • 0

ss, eu mudei todos ai, e mudou a cor do target, follow, só n sei pra que server esse " onIdle " quero que alguém edite essa script, para em vez de ter essas cores ai, a pessoa poder por uma imagem, ou uma sprite effect

 

entendi,eu que li errado malz.

Link para o comentário
Compartilhar em outros sites

  • 0

qual opcode vc possui?

eu instalei esse nas minhas sources do bananafight http://www.xtibia.com/forum/topic/213108-c-opcode-versao-854/

 

e até agr em funções só estou usando essas com opcode

doSendPlayerExtendedOpcode(cid, 85

doSendPlayerExtendedOpcode(cid, 81

só, se foi isso mesmo que vc perguntou kk acho que me enganei rs, se n for isso é só falar kk

Up

up

Up, nossa, será que ninguém vai me ajudar mesmo ? to a um passo de fazer aquele target massa do pxg para liberar pra galera, e ninguém ajuda ? uma simples coisa dessas ? é só adicionar ai uma função que chama uma imagem em vez de chamar essas cores ai que ta, ajudem ai pfv '-'

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

  • 0

voce quer deixar a target redonda igual da pxg? e isso?

ss, exatamente isso, e essa script ai é do otc do target, n sei se é desse jeito, mas se trocar aquela função de trocar a cor, por uma função que chama uma imagem em vez de cor, acho que fica quase igual

Up

Link para o comentário
Compartilhar em outros sites

  • 0

man pra modificar a target creio eu que vc vai ter que mecher nas cpp do otclient, nao vai ser por lua

talvez seja com alguma modificação, mas acho que da para fazer por lua, nessa script ai da pra vc regular a cor do target/follow, e se fizer uma modificação como pedir, tirar essa função de trocar a cor do target/follow, e por uma função que chame uma imagem da pasta data/imagens, dai ficaria com o target diferente, n igual a pxg, mas sim diferente.

Link para o comentário
Compartilhar em outros sites

  • 0

man a tabela ta em lua pq tem uma funcao executa no lua pra pegar a cor e salvar em uma variavel para a cor ser usada na source creature.cpp, a funcao que salva a cor e a 'showStaticSquare(color)" que salva a cor na variavel m_showStaticSquare que e executa na source creature.cpp neste local aqui

    if(m_showStaticSquare && animate) {
        g_painter->setColor(m_staticSquareColor);
        g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1));
        g_painter->setColor(Color::white);
    }
Link para o comentário
Compartilhar em outros sites

  • 0

 

man a tabela ta em lua pq tem uma funcao executa no lua pra pegar a cor e salvar em uma variavel para a cor ser usada na source creature.cpp, a funcao que salva a cor e a 'showStaticSquare(color)" que salva a cor na variavel m_showStaticSquare que e executa na source creature.cpp neste local aqui

    if(m_showStaticSquare && animate) {
        g_painter->setColor(m_staticSquareColor);
        g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1));
        g_painter->setColor(Color::white);
    }

tem um jeito de trocar essa função de cor por uma função que chame uma imagem para o target ?

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...