[OTCliente] Atributos

Seagull
em Clients

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

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!

OriGM

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/09/13Posts: 199

Seguindo,to precisando da mesma coisa. Tomara que alguma alma bondosa ajude. xP

xSONYx

Prostituto
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/12/07Posts: 272Char no Tibia: [ADM]Sony

Cara, isso tudo você faz posicionando no otui.. e a questão do storage, tem que ser com opcode.. eu lembro que fiz uma vez bem simples pro meu projeto que era de naruto, pena que o perdi pois formatei o pc, senão te passava :/

eu uso oculos no show porque elas querem minha alma

OriGM

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/09/13Posts: 199

Cara, isso tudo você faz posicionando no otui.. e a questão do storage, tem que ser com opcode.. eu lembro que fiz uma vez bem simples pro meu projeto que era de naruto, pena que o perdi pois formatei o pc, senão te passava :/

Caio tem como voce dar um exemplo do uso do opcode? Qualquer um que seja,pois sei que o opcode liga o server com cliente,mas nao faço a minima ideia de como funciona esse ligamento. Agradeceria demaaais.

Rikutachimoto

Lee sin das Montanhas
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 24/11/13Posts: 108

Tambem estou precisando =/

4bdu.jpg

Noninhouh

Danone
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/08/12Posts: 318Gênero: Masculino

n precisa ser necessariamente com opcode... vc pode fazer modo gambiarra como td mundo tah fazendo kkk (sendCancel)

se tiver tempo faço pra vc ;)

Strogman

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/11/12Posts: 464Gênero: MasculinoChar no Tibia: Lysty Of Death

é oque ele dize /\ lol editei aki quase mesma coisa que o noni comentou na mesma hr kkkkkkkkk

 

                                 logo_full_1600.png.f8d0c5d8ba71c660bad630b327c3e64d.png

                                                              htps://www.facebook.com/PokemonOnlineSVKE

                                                                                                                       PokeSvke

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

Agradeceria se alguém fizesse! No Aguardo

OriGM

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/09/13Posts: 199

No Servidor:

No talkactions.xml adicione a tag:

 

<talkaction words="#getPoints#" event="script" value="points.lua"/>

 

Na talkactions/script,copie e cole um arquivo e renomeie para points.lua,apague tudo e cole. modifique ali o

 

local storagepoint = numero da storage -- edit aqui o storage

function onSay(cid, words, param)

if not param then return true end
doPlayerSendCancel(cid, "#getPoints# ".. getPlayerStorageValue(cid, storagepoint))
return true
end

 

No Client:

No arquivo .otui do seu atributo,ali onde está Attributes Points: 0 ,voce tira o text,e só deixa a Label ali.

No arquivo .lua ,na função init(), troque o connect(g_game, seu por este.

 

connect(g_game, {

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

 

Ainda no .lua adicione abaixo de tudo e não esqueça de modificar os nomes do windows e da label,acredito que voce saiba fazer isso né? Caso não,copie e cole o arquivo .lua e poste aqui ,que eu modifico pra você.

 

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 = AttributesWindow:recursiveGetChildById("Label0")
level:setText('Attributes Points: '.. tonumber(t[2]))
end
end
end

 

Caso o Attributes Points fique -1,é porque no login.lua voce precisa setar para 0 ,ao logar pela primeira vez.

Caso nao saiba fazer isto também,me avise.

Abração!

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

OriGM o problema que aquele atribute sistem não é meu? aquilo é um exemplo de como eu quero, eu não sei fazer brother. Queria tudo montado justamente por isso, não saber fazer.

OriGM

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/09/13Posts: 199

Ai é meio que pedir demais.

Leve isso como uma dica e não crítica.

Se você se denomina Scripter .LUA e não consegue pegar de mão beijada o que te passei ai em cima e entender como funciona. Acho melhor retirar essa denominação sua.

Eu nunca estudei scripts,na verdade você pode ver minha atividade no forum ,voltei a mexer com servidor de tibia a pouco tempo,pois pensei em um projeto,e estou fazendo ele sozinho,e nunca fui scripter,no máximo eu inventei o primeiro sistema de montaria,digo que foi o primeiro porque foi muitos anos atrás,acredito que a 6 anos +/- e nunca tinha visto nenhum projeto com o sistema.

Mas meu sistema nada mais era que colocar um ring(mudado o sprite para uma cela de cavalo),adicionar uma outfit e mudar o speed. Simples mas que ninguem teve a ideia,pouco tempo depois foram aparecendo alguns derivados.

Pois bem o que eu quero dizer,é que nunca estudei,ou mexi com scripts,por isso não me denominei scripter,mas nem por isso eu deixo de ter a vontade de estuda-lo aqui no fórum ou pelo pai google.

Como voce pode ver em minhas atividades a pouco tempo,eu perguntava como fazia um script,para aparecer um item,ou seja,nao sabia nada.

Fui pegando dicas daqui e dali,pedindo scripts como base para as pessoas,para entender como funcionava,e assim poder criar meus próprios scripts.

Aqui no seu tópico mesmo,ali em cima voce pode ver que perguntei como conectava o servidor com o cliente e vice versa. Não perdi tempo e perguntei ao Noninho como funcionava o sendcancel,ele me respondeu,de uma forma clara e objetiva,um resumo de tudo que te passei ai em cima,olhei e olhei o script diversas vezes,não só esse dos atributos,mas praticamente TODOS do OTClient. Comecei a entender como funcionava,e botei cara a tapa e tentei.

Poucos dias depois,hoje mais precisamente,meu conhecimento está muito mais avançado,pois abriu minha mente de como funciona as coisas,então te peço que tente ler o script que te passei acima e entender como funciona.

Não por falta de vontade de fazer pra você,até porque eu tenho o sistema pronto,e poderia muito bem,te passar em forma de MOD,mas quero que você aprenda da mesma forma que aprendi.

Não quero que me julgue como um cara chato ou ignorante.

Tente fazer esse script,se realmente não conseguir,me avise,e te ajudarei com maior prazer a fazer o que você quer,não irei te passar o sistema pronto,mas te ajudarei a plantar a semente,e sua função vai ser regar,colher os frutos,e replantar isso novamente.

Espero que tenha entendido a mensagem,e antes que pense que eu tenho todo tempo do mundo,eu não tenho,trabalho em 2 lugares,tenho mulher,tenho minhas horas de lazer,e estou construindo minha casa(até pedreiro botei cara a tapa,pra fazer as coisas sozinho). Que te sirva de dica,e não desista cara,e como já disse,estarei aqui se precisar.

 

*Se tiver dúvida de algo,te ajudarei ,não exite em perguntar.

 

---------EDIT---------

Verifiquei que só dá pra ver a atividade de 5 posts atrás só,mas criei essa conta dia 24/09/13 e não sabia nem fazer um script de adicionar um item.

xSONYx

Prostituto
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/12/07Posts: 272Char no Tibia: [ADM]Sony

OriGM falou TUDO e mais um pouco..

eu uso oculos no show porque elas querem minha alma

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

OriGm agradeço de coração sua ajuda e iniciativa, não é que eu manje de scripts, se quiser posso ate tirar "scripter", e que entendo um pouco de logica de programação e estou aprendendo C++... Mas lua em otservers devido suas varias funções eu não entendo muito bem.

 

Juro que tentei fazer a janelinha, na verdade fiz como mod e até consegui fazer ela porem em branco, depois tentei adicionar os botoes mas não consegui... Tenho dificuldade em adicionar os botoes dentro e fazer aquele label. Mas não é que eu não tente, e que não consigo entender realmente...

Consegui fazer apenas um botão mas ele não fica com aquele simbolo verdinho, fica diferente.

 

P.S: Tambem trabalho e estudo, tenho namorada e compromissos... E estou com o tempo bem curto para conseguir estudar, ou me dedicar a ot servers.

OriGM

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/09/13Posts: 199

OriGm agradeço de coração sua ajuda e iniciativa, não é que eu manje de scripts, se quiser posso ate tirar "scripter", e que entendo um pouco de logica de programação e estou aprendendo C++... Mas lua em otservers devido suas varias funções eu não entendo muito bem.

 

Juro que tentei fazer a janelinha, na verdade fiz como mod e até consegui fazer ela porem em branco, depois tentei adicionar os botoes mas não consegui... Tenho dificuldade em adicionar os botoes dentro e fazer aquele label. Mas não é que eu não tente, e que não consigo entender realmente...

Consegui fazer apenas um botão mas ele não fica com aquele simbolo verdinho, fica diferente.

 

P.S: Tambem trabalho e estudo, tenho namorada e compromissos... E estou com o tempo bem curto para conseguir estudar, ou me dedicar a ot servers.

Então exatamente como estou também,muito compromisso,mas pouco do tempo que tenho,tento aprender,pois assim quando me sobrar tempo,eu irei conseguir fazer sem precisar de ajuda.

Bom vamos lá. Você conseguiu fazer a janela abrir e fechar correto? Vamos então adicionar a seguinte coisa,que seria a Label "Attribute" conforme a imagem do post.

Acredito que você saiba colocar a identaçao correta no .otui ou não? Caso não: http://www.xtibia.com/forum/topic/208423-otclient-tutorial-basico-1/

Para isto você vai adicionar a Label dentro da sua janela,conforme mostra no tutorial acima.

 

Label
id: attri
!text: tr('Attribute')
anchors.top: parent.top
anchors.left: parent.left

Eu dei um id para a label,para que fique melhor de posicionar as outras Labels,mas não era necessário você pode fazer uma janela toda dando margin(espaçamento),mas ai daria muito trabalho,use o margin só pra ajeitar ,como pode ver na imagem que voce postou,está tudo fora de linha,como esta Label não vai ter nenhuma mudança pelo .lua(no .lua só reconhece as Label do arquivo .otui pelos ID's) então não precisa de ID.

Fazendo isso vai aparecer o escrito Attribute no canto superior esquerdo da sua janela,mas você não quer que fique colado ali certo,então você vai dar margin-top e margin-left até ficar aonde voce deseja.

Ficando da seguinte forma.

 

Label

id: attri
!text: tr('Attribute')
anchors.top: parent.top
anchors.left: parent.left
margin-top: 7
margin-left: 20

Uma dica que dou,quando for copiar algum código e colar no seu .otui,como por exemplo este acima que te passei.

Clique antes de todas as letras e apague com o backspace,caso apague toda aquela parte vazia,era porque estava com um espaçamento do tipo "Tab",na qual não pode ser ,pois buga tudo,conforme o tutorial acima explica.

Se acontecer isso,utilize a barra de espaço para dar este espaçamento. Espero que tenha entendido ,caso não tenha conseguido me avise.

Você irá colocar nesta janela as skills normais do Tibia? Como Fist,Club,Sword... etc? Ou outras?

Pois para cada caso é um caso.

Se tudo der certo,vai aparecer escrito Attribute. Seu trabalho agora é adicionar a Label "Act." conforme a imagem. Para isto,repita o mesmo processo acima porém ao indicar as ancoras(anchors) ,invez de você colocar anchors.left(lado esquerdo da label) com o parent.left ,você vai colocar anchors.left: attri.right (lado esquerdo da label com o lado direito da label id: attri).

Se voce fez tudo corretamente,vai aparecer escrito Act. colado ao lado da label Attribute,dê o margin-left para afastar. Ou ao invez de colocar anchors.left: attri.right ,você poderia colocar anchors.right: parent.right isso faria a label ficar colada no canto superior direito,ai voce daria as margens.

Bom tente fazer isto,quando conseguir me avise,e passaremos para próxima aula.

Um abraço.

Seagull

Groow???
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 20/09/12Posts: 114

Abraço, assim que conseguir tempo sigo as instruções eu li por cima, to atrasado pro serviço!



Abração!



Consegui querido!




Foto


Sem_t_tulo.png

 



Código


 




MainWindow

id: testWindow

!text: tr('Atributos')

size: 350 350

@onEscape: hide()


Label

id: attri

!text: tr('Habilidades')

anchors.top: parent.top

anchors.left: parent.left

margin-top: 1

margin-left: 30


Label

id: pontos

!text: tr('Pontos')

anchors.top: parent.top

anchors.right: parent.right

margin-top: 1

margin-right: 30


Label

id: pontos2

!text: tr('Pontos:')

anchors.top: parent.top

anchors.left: parent.left

margin-top: 290

margin-left: 30