Ir para conteúdo
  • 0

[OTCliente] Atributos


Seagull

Pergunta

Olá galera boa tarde, juro que tentei, tentei mesmo, mas não consegui... Queria fazer isto no OT cliente.

h8hc.jpg

 

 

 

Já consegui fazer a Janelinha ficar lá em cima do lado do inventario, e toda vez que clickar aparecer, mas não consigo adicionar vários botões muito menos escrever um em baixo do outro e principalmente fazer ele retornar quanto de alguma storage que o Player tenha.

 

Os botões eles vão ser basicamente para falar talkactions.

 

Alguma alma bondosa me ajude!

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

Posts Recomendados

  • 0

Olá, já que a conversa alternou para esse assunto, gostaria de acrescentar se existe algum modo de esconder esse sendCancel?

Rapaz, comece com coisas menores como por exemplo uma tela e tente fazer aparecer seu nome nela, utilizando as funções Locais do OtClient, e dps que vc ja estiver manjando das identações ai vc começa a partir para o OpCode/sendCancel

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, já que a conversa alternou para esse assunto, gostaria de acrescentar se existe algum modo de esconder esse sendCancel?

Rapaz, comece com coisas menores como por exemplo uma tela e tente fazer aparecer seu nome nela, utilizando as funções Locais do OtClient, e dps que vc ja estiver manjando das identações ai vc começa a partir para o OpCode/sendCancel

Pra esconder sendCancel. Se voce usa um caracter por exemplo # em todas as sendCancel,basta voce fazer quando aparecer um sendcancel com esse simbolo,envia um novo sendcancel em branco,simples assim. =]

Link para o comentário
Compartilhar em outros sites

  • 0

Olá OriGM, desculpe a demora. Imagine uma pessoa sem tempo e com muitos problemas. Esse sou eu, estou voltando aos poucos fiz tudo que tu me mandou, porém aconteceu dois problemas... Um foi de que não aparece o número, e o outro e que o char entra falando #getpoints#.

Foto

 

Sem_t_tulo.jpg

 

 

.lua

 

 


function init()
connect(g_game, {
onGameStart = refresh,
onGameEnd = offline
})
connect(g_game, 'onTextMessage', getPoints)
refresh()
testWindow = g_ui.displayUI('atributos')
testWindow:hide()
testButton = modules.client_topmenu.addRightGameButton('atributosButton', tr('Atributos Button'), '/images/topbuttons/options', toggle)
testButton:setWidth(32)
end
function terminate()
testWindow:destroy()
testButton:destroy()
end
-----------------------------------------------------------------------
function autoUpdateTalks()
local player = g_game.getLocalPlayer()
if not player then return end
----------
g_game.talk("#getPoints#")
----------
end
function refresh()
local player = g_game.getLocalPlayer()
if not player then return end
autoUpdateTalks()
end
function getPoints(mode, text)
if not g_game.isOnline() then return end
if mode == MessageModes.Failure then
if string.find(text, "#getPoints#") then
local t = string.explode(text, " ")
local level = atributosWindow:recursiveGetChildById("Label4")
level:setText(tonumber(t[2]))
end
end
end
-----------------------------------------------------------------------
function toggle()
if testWindow:isVisible() then
hide()
else
show()
end
end
function show()
testWindow:show()
testWindow:raise()
testWindow:focus()
addEvent(function() g_effects.fadeIn(testWindow, 250) end)
end
function hide()
addEvent(function() g_effects.fadeOut(testWindow, 250) end)
scheduleEvent(function() testWindow:hide() end, 250)
end

 

 

.otmod

 

 

Module
  name: game_atributos
  description: atributos Window.
  author: Matheus
  website: none
  autoload: true
  autoload-priority: 1000
  sandboxed: true
  scripts: [ atributos ]
  @onLoad: init()
  @onUnload: terminate()
 

 

 

.otui

 

 


MainWindow
id: atributosWindow
!text: tr('Atributos')
size: 250 250
&save: true
Label
id: Label1
!text: tr('Habilidades')
anchors.top: parent.top
anchors.left: parent.left
Label
id: Label2
!text: tr('Pontos')
anchors.top: parent.top
anchors.right: parent.right
Label
id: Label3
!text: tr('Pontos:')
anchors.bottom: parent.bottom
anchors.left: parent.left
Label
id: Label4
anchors.bottom: parent.bottom
anchors.left: Label3.right

 

 

 

-------------------------------------------------

@Edit: Consegui arrumar, agora quando loga só aparece no roda pé do game: #getpoints# 1, mas não aparece no "atributosWindow", arrumei

Sem_t_tulo.jpg

 

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

  • 0

Aparentemente era pra funcionar já.

Não dá nenhum erro no console? Troque seu .otui por isso e verifique as identações caso dê erro.

 

 

MainWindow

id: atributosWindow
!text: tr('Atributos')
size: 250 250
&save: true
Label
id: Label1
!text: tr('Habilidades')
anchors.top: parent.top
anchors.left: parent.left
Label
id: Label2
!text: tr('Pontos')
anchors.top: parent.top
anchors.right: parent.right
Label
id: Label3
!text: tr('Pontos:')
anchors.bottom: parent.bottom
anchors.left: parent.left
Label
id: Label4
size: 50 15
anchors.bottom: parent.bottom
anchors.left: Label3.right

 

Qualquer coisa só falar.

Link para o comentário
Compartilhar em outros sites

  • 0

Imagem do erro.

 

Sem_t_tulo.png

 

 

 

.lua

 

 

function init()
  connect(g_game, { 
    onGameStart = refresh,
    onGameEnd = offline
  })
  connect(g_game, 'onTextMessage', getPoints)
  refresh()  


  testWindow = g_ui.displayUI('atributos')
  testWindow:hide()
  testButton = modules.client_topmenu.addRightGameButton('atributosButton', tr('Atributos Button'), '/images/topbuttons/options', toggle)
  testButton:setWidth(32)
end

function terminate()
  testWindow:destroy()
  testButton:destroy()
end

-----------------------------------------------------------------------
function autoUpdateTalks()
  local player = g_game.getLocalPlayer()
  if not player then return end
----------
  g_game.talk("#getPoints#")
----------
end
 
function refresh()
  local player = g_game.getLocalPlayer()
  if not player then return end
  autoUpdateTalks()
end
 
 
function getPoints(mode, text)
  if not g_game.isOnline() then return end
  if mode == MessageModes.Failure then
  if string.find(text, "#getPoints#") then
  local t = string.explode(text, " ")
  local level = Atributos:recursiveGetChildById("Label4")
        level:setText('Attributes Points:  '..  tonumber(t[2]))
  end
  end
end

-----------------------------------------------------------------------



function toggle()
  if testWindow:isVisible() then
    hide()
  else
    show()
  end
end

function show()
  testWindow:show()
  testWindow:raise()
  testWindow:focus()
  addEvent(function() g_effects.fadeIn(testWindow, 250) end)
end

function hide()
  addEvent(function() g_effects.fadeOut(testWindow, 250) end)
  scheduleEvent(function() testWindow:hide() end, 250)
end
 

 

 

.otui

 

 

MainWindow
  id: Atributos
  !text: tr('Atributos')
  size: 250 250
  &save: true

  Label
    id: Label1
    !text: tr('Habilidades')
    anchors.top: parent.top
    anchors.left: parent.left

  Label
    id: Label2
    !text: tr('Pontos')
    anchors.top: parent.top
    anchors.right: parent.right

  Label
    id: Label3
    !text: tr('Pontos:')
    anchors.bottom: parent.bottom
    anchors.left: parent.left

  Label
    id: Label4
    size: 50 15
    anchors.bottom: parent.bottom
    anchors.left: Label3.right 

 

 

.otmod

 

 

Module
  name: game_atributos
  description: Atributos.
  author: Matheus
  website: none
  autoload: true
  autoload-priority: 1000
  sandboxed: true
  scripts: [ atributos ]
  @onLoad: init()
  @onUnload: terminate()
 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tente tirar o espaço entre o ID: e o Atributos no .otui e faça o teste se vai se não.

Faça.

Troque o nome Atributos na MainWindow no .otui por: atribWindow

E no .lua tambem.

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo erro:

 

 

 

ERROR: protected lua call failed: LUA ERROR:

/game_atributes/atributos.lua:43: attempt to index global 'atribWindow' (a nil value)
stack traceback:
[C]: ?
/game_atributes/atributos.lua:43: in function </game_atributes/atributos.lua:38>

 

-------------------

 

Tentando ver outros códigos aqui e arrumar faz um tempão mas ta difícil.

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

  • 0
MainWindow
  id: testWindow
  !text: tr('Atributos')
  size: 250 250
  &save: true
 
  Label
    id: Label1
    !text: tr('Habilidades')
    anchors.top: parent.top
    anchors.left: parent.left
 
  Label
    id: Label2
    !text: tr('Pontos')
    anchors.top: parent.top
    anchors.right: parent.right
 
  Label
    id: Label3
    !text: tr('Pontos:')
    anchors.bottom: parent.bottom
    anchors.left: parent.left
 
  Label
    id: Label4
    size: 50 15
    anchors.bottom: parent.bottom
    anchors.left: Label3.right

Testa essa aqui, não sei mecher muito com OtClient... mas não custa nada eu tentar lhe ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0

Milagrosamente funcionou, cara não entendi nada agora. HAHAHAH.

 

Além de mudar para test e dar um espaçamento o que tu fez mais?

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

  • 0

;), oque acontece cara (Eu não sei mexer em OtClient) to aprendendo.

id: testWindow

Este eo ID: de sua Window

 testWindow = g_ui.displayUI('atributos')
 testWindow:hide()
 testButton = modules.client_topmenu.addRightGameButton('atributosButton', tr('Atributos Button'), '/images/topbuttons/options',  toggle)
 testButton:setWidth(32)

Se reparar todas as linhas tem o nome "testWindow" que seria o nome da janela principal =), se eu estiver certo o nome que estiver no .otui tem que ser o mesmo do .lua

Link para o comentário
Compartilhar em outros sites

  • 0

Verdade! Eu não tinha reparado, mega fail da minha parte.

 

--------------------------------------------------------

 

@Riku: Sabe como faço pra fazer a parte de dentro do MainWindow mais escura?

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

  • 0
Seagull, em 10 Jan 2014 - 14:32, disse:

Verdade! Eu não tinha reparado, mega fail da minha parte.

--------------------------------------------------------

@Riku: Sabe como faço pra fazer a parte de dentro do MainWindow mais escura?

Você esta se referindo a background ?

Meu Resultado:

akv6.png

Se For isso

Data/Images/Ui

Window (Use o Photoshop para Escurecer ela)

Se quiser que eu poste a minha para você so pedir não irei usar foi so um exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

Seria isso:

 

h8hc.jpg

 

Esta vendo que tem uma parte mais clara no caso? tipo um quadrado mais claro... Queria fazer isso, e outra dúvida é o botão em forma de X não sei o código dele.

E mudar a cor das letras, sei que tem como.


Queria agradecer a todo mundo que meu ajudou, nesta madrugada consegui fazer. Que venham novos desafios. Queria agradecer muito ao OriGM, muito mesmo! e por fim ao Rikutachimoto que me ajudou um pouco na finaleira.

 

Este é o resultado final.

 

 

Sem_t_tulo.png

 

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

  • 0

Riku: se voce reler o topico todo,vai ver que ensinei o Seagull como fazer.

Basta seguir o tópico que vai dar tudo certo.

 

Seagull: Que bom cara que deu tudo certo! Parabéns por ter compreendido que eu só queria lhe ajudar,a aprender como fazer,e não te dar de mão beijada,acredito eu que agora você tem uma noção mais avançada de como funciona,e apartir disso vai conseguir fazer a maioria das coisas sozinho,uma vez que quase tudo parte do mesmo princípio.

 

Um abração e qualquer coisa só falar.

Editado por OriGM
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...