[tutorial] Hashtable
+4
SN.Edysefer
Tamires
Law.Terro
Bills
8 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 1
[tutorial] Hashtable
Tutorial básico sobre hashtable
Eai galera, há um tempo havia falado que iria fazer um tutorial sobre hashtables. Então chega de enrolação e vamos logo com isso.
Galera antes de ensinar sobre hashtable, vou dizer tudo que vocês precisam pra usar hashtable. Você terá que ter um conhecimento básico sobre variáveis array e precisará criar uma hashtable em uma trigger com evento "Map Initialization":
O que é uma Hashtable?
Hashtable é uma tabela na qual você pode guardar qualquer tipo de informação. Como se fosse uma variável array. Porém nas variáveis array só temos 1 indice, em hashtable temos 2.
Exemplo:
- Código:
set variavel [1] = informação
set hashtable [1] [2] = informação
Para salvar algo na hashtable você precisa fornecer dois índices (números) que serão como um código para achar a informação e escolher a função para o Tipo. Como no exemplo acima, eu quero guardar MinhaUnit dentro da MinhaHashtable no índice 0 (zero) e 0 (zero) e usei o Save Unit Handle. Então para eu recuperar o que eu gravei na hashtable eu apenas tenho que usar o Load Unit nos índices 0 e 0 gravando direto na minha variável.
Mas qual a real vantagem da hashtable?
A vantagem é que cada coisa do mapa tem um id (código) chamado HandleId. Esse handle id é um número maior que o limite dos indices das variáveis array, que é 8191, mas não é maior que o limite para os indices da hashtable. E além disso, a hashtable possui dois indices, tornando o armazenamento de informações mais dinâmico ainda. Vou dar um exemplo. Vou ensinar a fazer um simples knockback (aquelas magias que empurram) usando hashtable. Usarei a magia Thunder Clap para ativar nosso knockback. veja:
Acima são as triggers do knockback com hashtable. Só quero explicar mesmo a linha que salvo o valor do Angulo no indice Key (Picked Unit), isso significa que usei o código daquela unidade para ser um índice. Assim quando eu for fazer o Pick Every Unit no grupo que está todos os alvos do knockback eu novamente usarei o Key (Picked Unit) para recuperar as informações que gravei. No outro índice ainda tenho que usar valores diferentes. Se a hashtable fosse mesmo uma variável com 2 índices, é como se eu tivesse fazendo isso:
- Código:
set MinhaHashtable[0][PickedUnit] = Angulo
set MinhaHashtable[1][PickedUnit] = DistanciaRestante
No meu blog tem um link para download do mapa com esse knockback em hashtable, caso alguém se interesse.
É isso ai galera, até a próxima!
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31094
Re: [tutorial] Hashtable
Tópico atualizado...
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31094
Re: [tutorial] Hashtable
Bom, eu não entendi muito bem, fico complexo de mais, sou mais acustumado a linguagem culta xD
Re: [tutorial] Hashtable
O que não entendeu?
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31094
Re: [tutorial] Hashtable
Voce tentou fazer algo pelo menos? Tentou entender o Knockback?
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31094
Re: [tutorial] Hashtable
A sim eu entendi completamente agora, um bom tutorial e muito útil também, +REP com certeza.
Re: [tutorial] Hashtable
Bills,não seria mais fácil ensinar por jass? não q eu n saiba,mais ao meu ver fica mais fácil sim.
e outra,está errado aqui:
@EDIT : Fail meu,sorry.
e outra,está errado aqui:
@EDIT : Fail meu,sorry.
Tamires- Número de Posts : 487
Data de inscrição : 09/01/2012
Reputação : 27 Pontos : 25353
Re: [tutorial] Hashtable
Se o pessoal soubesse jass seria mais facil sim, existe até um sistema chamado Table que torna o uso de hashtables bem mais facil. Porem o pessoa aqui não conhece jass, então não teria como eu fazer esse tutorial em jass.
Mas o tutorial não está complicado, até o Devil_Terr0 entendeu (depois que obriguei ele a olhar o knockback). Para entender coisas que você ainda não conhece você apenas precisa "querer" entender.
Mas o tutorial não está complicado, até o Devil_Terr0 entendeu (depois que obriguei ele a olhar o knockback). Para entender coisas que você ainda não conhece você apenas precisa "querer" entender.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31094
Re: [tutorial] Hashtable
certamente amigo e pode ter certeza que vou, muito bom deu pra ter uma noção de como funciona esses procedimentos
SN.Edysefer- Número de Posts : 93
Data de inscrição : 28/12/2012
Reputação : 1 Pontos : 21827
Re: [tutorial] Hashtable
- Código:
REVIVENDO O TÓPICO SEM QUERER MAS QUERENDO!!
- Código:
DA PRA ENSINAR ISSO EM JASS?? ALGUEM SABE POIS COMO SABEMOS O BILLS E OCUPADO E TIPO ESTOU MESMO QUERENDO SABER JASS . . . MESMO QUE EU NÃO MECHA MUITO NO WE MAS AINDA SIM QUERO ME SENTIR REALIZADO.
lucas218- Número de Posts : 264
Data de inscrição : 29/01/2012
Reputação : 26 Pontos : 24813
Re: [tutorial] Hashtable
Baum...o bills sama como voce deve saber e quase imposivel entra,porem...pede ajuda a o gilga quem sabe ele nao pode te ajuda,ele tambem sabe jass/vjass.=)
porem,voce tambem pode fazer sozinho,basta fazer como esta ai em GUI e converter para jass,observar pro um bom tempo e tentar refaze-lo,e se achar melhor,edita-lo,pois as vez nao basta somente converter gui/jass,ainda pode conter leaks.e tambem editando-o seria um treinamento para voce msm =)
porem,voce tambem pode fazer sozinho,basta fazer como esta ai em GUI e converter para jass,observar pro um bom tempo e tentar refaze-lo,e se achar melhor,edita-lo,pois as vez nao basta somente converter gui/jass,ainda pode conter leaks.e tambem editando-o seria um treinamento para voce msm =)
Joker- Número de Posts : 447
Data de inscrição : 03/08/2012
Reputação : 62 Pontos : 26168
Re: [tutorial] Hashtable
Certo, aqui vai uma amostra com algumas explicações básicas: http://slim.bz/a7KmdG
Caso tenha mais alguma dúvida, fico feliz em ajudar.
E vale ressaltar que hashtabls são principalmente utilizados em spells ou systems que utilizam Knockback, que é utilizar um timer para executar uma função X vezes para deslocar uma unidade á uma certa distância.
Aconselho a analisar o funcionamento das hashs nestes tipos de spells e systems, embora hashtables sejam funções de nível médio e não sejam recomendadas para quem ainda vai aprender Jass.
Caso tenha mais alguma dúvida, fico feliz em ajudar.
E vale ressaltar que hashtabls são principalmente utilizados em spells ou systems que utilizam Knockback, que é utilizar um timer para executar uma função X vezes para deslocar uma unidade á uma certa distância.
Aconselho a analisar o funcionamento das hashs nestes tipos de spells e systems, embora hashtables sejam funções de nível médio e não sejam recomendadas para quem ainda vai aprender Jass.
Re: [tutorial] Hashtable
o nogócio esta mais em aprender a programar ... conceitos de scopes, funções, objetos, arrays ... o bills largou mão de jass/vjass, e eu sou outro ... a última vez que eu falei com ele, ele tava concentrado em javascript na produção de jogos.
se você revirar o fórum vai achar alguem que fez algum sistema MUI com jass script ... procure
se você revirar o fórum vai achar alguem que fez algum sistema MUI com jass script ... procure
Tópicos semelhantes
» [TUTORIAL] MUI - Básico
» [Tutorial] Sistema de Pet
» [TUTORIAL] PvP System
» [Tutorial] Tutorial extremamente básico sobre a utilização do jQuery
» [Tutorial] Dialog
» [Tutorial] Sistema de Pet
» [TUTORIAL] PvP System
» [Tutorial] Tutorial extremamente básico sobre a utilização do jQuery
» [Tutorial] Dialog
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos