Ir para conteúdo
  • 0
Entre para seguir isso  
Wend Jr

OTClient Dúvida em adiciona HealthBar no OTClient

Pergunta

Wend Jr    9
Wend Jr

Olá pessoal da OTBr, estou aqui hoje para tira uma dúvida sobre OTClient!


 


estou querendo sabe como que posso adiciona uma HealthBar nas skills do OTClient 


as skills estão assim: 141012032228376539.png


 


ai eu queria colocar uma HealthBar nesse Meio ai :)


Compartilhar este post


Link para o post

54 respostass a esta questão

Recommended Posts

  • 0
dalvorsn    46
dalvorsn

O otui funciona por identação, quando tu tem um widget dentro do bloco do outro, ele é o parent

dai o ancoramento é parent.top parent.left e etc

quando é na mesma direção, nao e o mesmo bloco e nao esta fora, tu usa o prev

prev.top prev.right e etc ...

Tu coloca um id pra ele, dai depois e so buscar esse id no lua, e atualizar ele com alguma callback de healthchange que deve ter no otc

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

 

O otui funciona por identação, quando tu tem um widget dentro do bloco do outro, ele é o parent

dai o ancoramento é parent.top parent.left e etc

quando é na mesma direção, nao e o mesmo bloco e nao esta fora, tu usa o prev

prev.top prev.right e etc ...

Tu coloca um id pra ele, dai depois e so buscar esse id no lua, e atualizar ele com alguma callback de healthchange que deve ter no otc

 

Entendi um pouco, no caso no skills.otui ficaria +ou- assim?

SkillButton      id: Health      SkillNameLabel        !text: tr('Vida')      SkillValueLabel      SkillPercentPanel        background-color: red

 

Já no skills.lua não obtive sucesso até agora :(

Editado por Elver Maguh

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

Entendi um pouco, no caso no skills.otui ficaria +ou- assim?

SkillButton
      id: Health
      SkillNameLabel
        !text: tr('Vida')
      SkillValueLabel
      SkillPercentPanel
        background-color: red
Já no skills.lua não obtive sucesso até agora :(

 

local health = skillsWindow:recursiveGetChildById("Health")

Agora tu tem uma instancia do teu widget, o que quer fazer com ele?

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

isso onde no skills.lua? está ruim para entende essa linguagem do OTC

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

Nao e complicado, so precisa ler com atenção, veja so, no script que da inicio no modulo, existe essa linha:

 

skillsWindow = g_ui.loadUI('skills', modules.game_interface.getRightPanel())

Agora skillsWindow é a variavel do arquivo otui, e como se fosse um parent master

Apartir dele voce pega os children(filhos)

 

Voce nao definiu um id para seu widget? "id: Health", esse é o id ele, para pegar ele tem que buscar esse id

Tendo esse id, voce pode controlar ele, como é um health bar, tem que ligar a callbacks de mudando de health, com o connect la

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

no caso eu ia deixar +ou- assim no skills.lua;

function onHealthChange(localPlayer, health, maxHealth)
  setSkillValue('health', health)
  checkAlert('health', health, maxHealth, 30)
end
Editado por AnnaFeeeh

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

+- porque?

O que nao funciona como deveria?

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

+- porque?

O que nao funciona como deveria?

 

Coloquei assim;

 

   SkillButton
      id: health
      height: 15
      SkillNameLabel
        !text: tr('Pontos de Vida')
      SkillValueLabel
      visible: true

 

e ficou assim;

 

141016022151545559.png

 

ai eu queria que ele ficasse como os outros que estão acima dele entende?

Editado por AnnaFeeeh

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

Mas é claro que nao fica, tu tem que criar o progress bar tambem

Um é um o widget de label, onde fica so o texto,  outro é o de porcentagem conhecido como progressBar

Da uma lidinha no otui que tu vai ver como funciona, e bem simples, um copy paste trocando o id vai funcionar bem, e e so setar o value desse progressbar junto com a callback

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

Obrigado consegui com sua ajuda é claro  ^_^

 

14101605130925177.png

 

poderia mim ajuda em 2 dúvidas sobre OTClient?

 

1° aquele quadrado das skills queria aumenta a altura mais um pouco porque é chato fica subindo e descendo '-'

 

 

SkillFirstWidget < UIWidget
 
SkillButton < UIButton
  height: 21
  margin-bottom: 2
  &onClick: onSkillButtonClick
 
SkillNameLabel < GameLabel
  font: verdana-11px-monochrome
  anchors.left: parent.left
  anchors.top: parent.top
  anchors.bottom: parent.bottom
 
SkillValueLabel < GameLabel
  id: value
  font: verdana-11px-monochrome
  text-align: topright
  anchors.right: parent.right
  anchors.top: parent.top
  anchors.bottom: parent.bottom
  anchors.left: prev.left
 
SkillPercentPanel < ProgressBar
  id: percent
  background-color: green
  height: 5
  image-source: /modules/game_skills/img/skillprogress
  image-border-left: 2
  image-border-right: 3
  margin-top: 15
  anchors.left: parent.left
  anchors.right: parent.right
  anchors.top: parent.top
  phantom: false
 
MiniWindow
  id: skillWindow
  !text: tr('Skills')
  height: 150
  icon: /modules/game_skills/img/perfil_icon
  @onClose: modules.game_skills.onMiniWindowClose()
  &save: true
 
  MiniWindowContents
    padding-left: 5
    padding-right: 5
    layout: verticalBox
 
    SkillButton
      margin-top: 5
      id: experience
      height: 13
      SkillValueLabel
        width: 130
        text-align: top
        anchors.horizontalCenter: parent.horizontalCenter
        margin-left: 15
      UIButton
        id: clanicon
        width: 37
        height: 36
        image-source: /modules/game_skills/img/skillicon
        anchors.top: parent.top
        anchors.left: parent.left
 
    SkillButton
      margin-top: 5
      id: experiencee
      height: 13
      SkillValueLabel
        width: 130
        font: sans-bold-16px
        text-align: top
        anchors.horizontalCenter: parent.horizontalCenter
        margin-top: -6
        margin-left: 15
 
    SkillButton
      id: level
      SkillNameLabel
        !text: tr('Experience')
      SkillValueLabel
      SkillPercentPanel
        background-color: green
 
    SkillButton
      id: skillId6
      SkillNameLabel
        !text: tr('Fishing')
      SkillValueLabel
      SkillPercentPanel
 
    SkillButton
      id: skillId3
      SkillNameLabel
        !text: tr('Headbutt')
      SkillValueLabel
      SkillPercentPanel
 
    SkillButton
      id: health
      SkillNameLabel
        !text: tr('Hit Points')
      SkillValueLabel
      SkillPercentPanel
      visible: true
 
    SkillButton
      id: mana
      height: 15
      SkillNameLabel
        !text: tr('Mana')
      SkillValueLabel
      visible: false
 
    SkillButton
      id: capacity
      height: 15
      SkillNameLabel
        !text: tr('Capacity')
      SkillValueLabel
      visible: false
 
    SkillButton
      id: regenerationTime
      SkillNameLabel
        !text: tr('Regeneration Time')
      SkillValueLabel
      visible: false
 
    SkillButton
      id: offlineTraining
      SkillNameLabel
        !text: tr('Offline Training')
      SkillValueLabel
      SkillPercentPanel
      visible: false
 
    SkillButton
      id: magiclevel
      SkillNameLabel
        !text: tr('Magic Level')
      SkillValueLabel
      SkillPercentPanel
        background-color: red
      visible: false
 
    SkillButton
      id: stamina
      height: 15
      SkillNameLabel
        !text: tr('Stamina')
      SkillValueLabel
      margin-top: 8
 
      HorizontalSeparator
        height: 7
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: parent.right
        margin-top: -6
 
    SkillButton
      id: soul
      height: 15
      SkillNameLabel
        !text: tr('seus Catches')
      SkillValueLabel
 
    SkillButton
      id: speed
      height: 15
      SkillNameLabel
        !text: tr('Speed')
      SkillValueLabel
 
    SkillButton
      id: skillId1
      margin-top: 8
      height: 15
      SkillNameLabel
        !text: tr('Duelos vencidos')
      SkillValueLabel
 
      HorizontalSeparator
        height: 7
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: parent.right
        margin-top: -6
 
    SkillButton
      id: skillId0
      height: 15
      SkillNameLabel
        !text: tr('Duelos perdidos')
      SkillValueLabel
 
    SkillButton
      id: skillId2
      SkillNameLabel
        !text: tr('Sword Fighting')
      SkillValueLabel
      SkillPercentPanel
      visible: false
 
    SkillButton
      id: skillId4
      SkillNameLabel
        !text: tr('Distance Fighting')
      SkillValueLabel
      SkillPercentPanel
      visible: false
 
    SkillButton
      id: skillId5
      SkillNameLabel
        !text: tr('Shielding')
      SkillValueLabel
      SkillPercentPanel
      visible: false
 

 

2° toda vez que clico no mapa para o player anda o OTClient parar de responde, sabe resolve? 

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

1º:

MiniWindow
  id: skillWindow
 
!text: tr('Skills')
  height: 150

 

Altera ai esse height, vai trocando e dando reload, ate chegar no que tu quer

 

2º dificil dizer, mas provavelmente ta ligado ao pathfind, tu fez alguma alteração nele? porque nao e muito normal isso acontecer ...

Verifica tambem uma opção que tem no otc se a opção 'ativar andar inteligente' está ativada, eu lembrava dela ser mais custosa talvez seu pc nao aguente muito bem com ela ... desative e teste para ver se melhora

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

o problema do mapa está parando foi resolvido Thank you!

mais o quadrado da skill eu troquei aquele 150 por 200 e não acontece nada no tamanho do mesmo quando inicio o OTClient, não teria que editar em outro lugar?

Editado por Wend Jr

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

Bom, acredito que não, pois ele é o tamanho do miniwindow principal, é so aletar e recarregar o module

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

então coloquei em 200 e nada  :mellow:

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

entao o jeito vai ser fazer o resize por script

 

parent:setHeight(newSize)

em vermelho nome do widget, laranja o 200 que e o size, bota isso numa função que inicia com o modulo, de preferencia no final dela

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

Resolvido  :D

 

Affs  <_< quanto mais eu rezo mais problemas aparece, não tem a Healthbar que você ajudou a colocar? 

ela só fica parada como na imagem abaixo, mesmo perdendo sangue e enchendo tudo de novo a progress bar verde só fica ali a única coisa que vai mudando é os pontos que ficam do lado do nome :(

 

14101605130925177.png

Editado por Wend Jr

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

voce setou o percent do progress bar junto com o valor numerico?

 

progresBarName:setValue(atual, minimo(geralmente 0), maximo)

Fazendo isso acima, ele vai te dar um percentual grafico no progressbar

Editado por dalvorsn

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

no otui;

 

   SkillButton
      id: health
      SkillNameLabel
        !text: tr('Hit Points')
      SkillValueLabel
      SkillPercentPanel
      visible: true

 

no lua;

 

function onHealthChange(localPlayer, health, maxHealth, percent)
  setSkillValue('health', health)
  checkAlert('health', health, maxHealth, 30)
end

 

só fiz isso  ^_^ oque teria que muda? 

Compartilhar este post


Link para o post
  • 0
dalvorsn    46
dalvorsn

qual o nome do widget do progressbar?

basta adiciona o nome dele chamando o metodo com os valores

 

progressBar:setValue(percent, 0, 100)

Compartilhar este post


Link para o post
  • 0
Wend Jr    9
Wend Jr

qual o nome do widget do progressbar?

basta adiciona o nome dele chamando o metodo com os valores

 

progressBar:setValue(percent, 0, 100)

como assim? coloco isso onde? 

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×