TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!



[TUTORIAL] MUI - Básico

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-29, 13:52

Como fazer magias MUI (básico)

Eai garotada, venho aqui ensinar como fazer, de um jeito super simples, magias MUI. No final do tutorial tem um mapa demo. Mas deixe para baixa-lo apenas depois do tutorial, tente fazer nossa magia MUI apenas lendo o tutorial.
Nesse tutorial você terá que saber sobre variáveis array e sobre memory leaks, coisas importantes para quem quer aprender MUI.

Mas tio Bills o que é MUI?
MUI na teoria significa Multi-Unit Instanceability. Na prática significa qualquer coisa (não apenas magias) que possa ser usada por vários jogadores e unidades, diferentes ou iguais, ao mesmo tempo sem bugar.

E como eu faço isso?
É muito simples, jovem gafanhoto. Vou te ensinar pelo jeito mais fácil em GUI, a indexagem. Para quem não sabe o que é indexagem, é um jeito organizar dados de forma que você possa recupera-los através de seu index (um numero de referencia). É como se você fizesse uma “matriz” de dados ou uma lista.

Vendo essa tabela imaginem uma trigger que roda a cada 1 segundo. Toda vez que ela roda ela busca todos os index, do primeiro (1) ao ultimo (3), Fazendo o CASTER[index] causar o DAMAGE_PER_SECOND[index] ao TARGET[index]. Assim quando o index ser 1, o CASTER[1] (Paladin) vai causar DAMAGE_PER_SECOND[1] (30) ao TARGET[1] (Death Knight), quando ser 2 seria... ah, só olhar na tabela.

E como faríamos para saber qual é o primeiro index, o ultimo e como faríamos a trigger procurar por todos. Para isso usaremos o comando “For”.
Spoiler:
Mais para frente explicarei o "For", caso voce tenha alguma duvida.

Vamos começar então?
Para ensinar MUI vou dar um exemplo bem fácil, vamos criar uma shockwave MUI \o/. Eu sei que a shockwave do warcraft já é MUI, mas quero apenas usa-la como exemplo. Para criar uma shockwave totalmente triggered precisaríamos de uma dummy (que seria a wave/efeito), um trigger para inicia-la e também um trigger periodic (que ocorra a cada “0.03” segundos). Sem MUI, precisaríamos apenas de criar algumas variáveis, armazenar alguns dados nas variáveis quando a magia fosse usada, criar a dummy e armazena-la, mandar ativar a periodic, depois a periodic faria a dummy mover. E todos seriamos felizes, mas queremos mais, queremos MUI!

Tá, e como vai ser em MUI ?
Seria quase a mesma coisa, apenas teríamos que criar um novo index e armazenar os dados daquela execução da magia em variáveis “array” usando esse novo index.
Obs: Para o tutorial usarei a sigla SW para referir a shockwave.

Vamos lá, crie essas variáveis:
SW_indexCount (Integer – Default Value: 0)
SW_newIndex (Integer – Default Value: 0)
SW_MUI_indexExists (Boolean – array – Size: 1 – Default Value: 0)
SW_MUI_waveCount (Integer – Default Value: 0)
SW_MUI_Dummy (Unit – array – Size: 1 – Default Value: 0)
SW_MUI_Distance (Real – array – Size: 1 – Default Value: 0)
SW_Loop (Integer – Default Value: 0)
Obs: outras variáveis vão aparecer no tutorial, tipo TempUnit. Com essas você pode usar alguma que já tenha ou crie elas se precisar.

Nossa magia vai começar sempre que uma unidade usar a SW. Ops, já ia me esquecendo, crie uma dummy com locust e mude o modelo dela para o míssil da Shockwave, que vou chamar de SW Dummy, e crie também uma magia shockwave (retire todos efeitos e damage). Vamos lá, quando alguém usar a nossa shockwave custom, o trigger criará um novo index e assim armazenaremos todas as informações em nossas variáveis array usando nosso novo index.


Toda vez que a magia for usada, a SW_indexCount vai ganhar +1 e a SW_newIndex guardará esse novo valor de SW_indexCount. Assim, toda que a magia for usada SW_indexCount vai aumentar seu valor, ficando toda vez diferente. Usaremos SW_MUI_indexExists para saber se a index existe (usaremos ela parar fazer a magia acontecer), se ela for true é porque o index existe e está sendo usado. A SW_MUI_waveCount vai contar quantas waves (dummy) estão se movendo ainda, ou seja, quatas SW ainda estão em andamento.
Continuando nossa trigger, agora armazenaremos nossas informações e criaremos a dummy. Nessa parte uso algumas variáveis extras para adquirir valores e também para pegar um ângulo.
Spoiler:
Como viu usei algumas variaveis extras. É sempre bom que você armazene valores que serão usados mais de uma vez em variaveis temporárias. Pois o computador busca bem mais rápido uma variável do que uma função (Triggering Unit é uma function, por exemplo). Voltando... O “if” no final da trigger serve para ativar a periodic, caso ela esteja off.
Obs: essa “Shockwave MUI movement” é nossa próxima trigger, crie ela antes de fazer essa parte.

Criando uma Periodic com Indexagem
Agora temos que fazer que todas as magias registradas no index de SW_indexCount seja movidas e causem dano nas unidades inimigas. Não vou explicar como se move uma dummy, não estou fazendo tutorial disso.
Vamos lá, faça uma trigger chamada “Shockwave MUI movement” e desmarque a opção “Initally On”.
No evento use “Time – Periodic Event”, coloque 0.03. Nenhuma condição.

Agora faça o resto da trigger:
Spoiler:

Primeiro vou explicar o “for”, talvez tenha gente lendo isso que não entende ainda. O “for” no GUI pode usar Integer A, Integer B ou uma Integer a sua escolha (como no nosso caso). “For each” significa “Para cada”, Para cada inteiro (integer) de 1 até SW_indexCount (numero de index já usados) ele executará as functions no “Loop – Actions”. Ou seja, se a gente já tiver usado 3 indexs, ele executará ... ? 1 vez, 2 vezes, 3 vezes. 1 vez para cada index. A variável SW_Loop que foi nosso integer escolhido irá ter o valor 1 na 1ª execução, 2 na 2ª , 3 na 3ª e etc. Assim podemos buscar todos as informações guardadas nas nossas variáveis array.
O primeiro “if”, SW_MUI_indexExists[SW_Loop] Equal to True (verdadeiro), serve para saber se o index existe e está sendo usado. Se der false (falso) é porque o index já foi usado, mas não está mais.
O próximo if é “SW_MUI_Distance[SW_Loop] less than 1500”, se a distancia percorrida pela wave daquele index ainda é menor que 1500 (nossa distancia máxima), o trigger executa o que está dentro de “Then - Actions”. Ou Se a distancia for “maior ou igual” a 1500 executa o que está dentro do “Else - Actions”. Um if sempre executa apenas um bloco (Then ou Else), nunca os dois.
Se a distancia for menor que 1500 a dummy irá mover mais 50 de distancia, até chegar no máximo (1500). Senão (else) o index dela será marcado que não existe (não está mais em uso), a dummy será destruída e SW_waveCount será subtraído 1. Lembrando que SW_MUI_waveCount conta quantas waves estão ativas no mapa.
Lá no final temos um “if”, reparem que ele está fora do “for”, ou seja, ele só será executado quando o for (daquela execução do trigger) terminar. Esse for determina, se a SW_MUI_waveCount for igual a 0 (zero), desativa esse trigger (o periodic), pois não tem nenhuma wave ativa. Só precisamos que ela fique “ligada” quando tiver waves. Lembra que quando uma unidade usar nossa SW, se a periodic estiver “off” ela é ligada, lembrou? E pra finalizar SW_indexCount volta pra 0 (zero), pois nenhum index está sendo utilizado, então ele terá novamente o valor inicial.

Nesse tutorial eu quis explicar apenas o básico de como fazer uma habilidade MUI, vocês podem se esforçar e ainda aprender sobre reciclagem de index. Procurem baixar mapas de magias no Hive WorkShop, geralmente as magias são todas MUI. Aé, caso você ficou com alguma duvida em alguma parte, baixe o Mapa de demonstração e veja nele. Nesse mapa coloquei duas shockwaves, uma MUI e uma não-MUI, para você verem o que pode acontecer quando uma magia não é MUI e ela é executada varias vezes ao mesmo tempo. No mapa as magias não tem cooldown nem mana cost, então usem varias vezes de uma vez cada shockwave e verá o que é ser MUI.


Espero ajudar alguns com esse tutorial, beijos e abraços do Mano Bills!

Download Mapa Demo


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por GuLider em 2011-06-29, 16:42

Opa bills, tava esperando esse tutorial a muuuuuito tempo cara, muito obrigado por ajudar aí, está muito bem explicado para leigos como eu.

+REP

@EDIT: Qual é a diferença de Integer A e de Integer B?


Criando uma Sign Básica
Tipografias
Efeitos em Tipografias
Entendendo a Lógica das Triggers
--------------------------------------------
A procura de um tutorial? Clique Aqui!

Quero Aprender Photoshop, se você quer aprender Photoshop, esse é seu lugar

GuLider

Número de Posts : 907
Data de inscrição : 16/05/2011
Reputação : 47 Pontos : 11332

Warning Necropost
0 / 1000 / 100


http://www.queroaprenderphotoshop.wordpress.com

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-29, 16:58

Nenhuma. Mas se voce for fazer um FOR dentro de outro FOR, usando apenas o Integer A, vai bugar. Por isso voce tem que usar FORs diferentes caso ele esteja dentro de outro FOR.

Exemplo:

Isso funciona:

Código:
For each (Integer A) from 1 to 10, do (Actions)
    Loop - Actions
        For each (Integer B) from 1 to 10, do (Actions)
            Loop - Actions

Isso não funciona:
Código:
For each (Integer A) from 1 to 10, do (Actions)
    Loop - Actions
        For each (Integer A) from 1 to 10, do (Actions)
            Loop - Actions


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Ice_Crowner em 2011-06-29, 19:51

nossaaaa!!!

ja exclareceu mais a minha mente rsrs...

Belo tuto. Amanha eu baixo o mapa para ver.

Vlws Bills. + Repu Smile



Ice_Crowner

Número de Posts : 1111
Data de inscrição : 19/09/2010
Reputação : 43 Pontos : 12697

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-29, 21:47

Quero ver todo mundo fazendo spell MUI de hoje em diante! XD


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Ice_Crowner em 2011-06-29, 21:51

he he xD

Pode cre!

a primera q vo tenta converte vai ser a minha magia bola de gelo. Tomara q eu ñ tenha mtos problemas...



Ice_Crowner

Número de Posts : 1111
Data de inscrição : 19/09/2010
Reputação : 43 Pontos : 12697

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-29, 22:25

Apenas transforme as variaveis dela em array. =D

@Edit

Quando forem fazer magias MUI, deixem elas sem manacost e cooldown. E spamem bastante até verem que não estão bugando.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por aldonova em 2011-06-29, 22:41

^^
Muito Bom O Tuto...Ainda Não Terminei De Ler Pois Tenho Que Fazer Uns Negócios Aki Em Casa, Mais Pelo Geito Tá Perfeito.
+Rep!
Espero Algum Dia Me Animar E Temtar Fazer Spels Muis(Ou Pelo Menos As Normais )


°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º°


Ai Como Eu Queria Que Meu Computador Fosse Melhor... só para voutar a Jogar World Of Warcraft
...

°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º0°º°

aldonova

Número de Posts : 1054
Data de inscrição : 20/01/2011
Reputação : 45 Pontos : 11941

Warning Necropost
3 / 1003 / 100


http://teamkings.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Ice_Crowner em 2011-06-29, 22:57

nossa! bachei o mapa, mto bacana (a dummy me lembra um carro de corrida rsrs)

n parece ser tao dificil. Só preciso mesmo aprender a interpretar melhor essas arrays com integers. esses nomes chegam a me dar medo kkk!



Ice_Crowner

Número de Posts : 1111
Data de inscrição : 19/09/2010
Reputação : 43 Pontos : 12697

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-30, 08:15

KKKKKkkkk ignorem o prefixo SW_MUI_... É que em GUI costumamos colocar prefixo em nossas variaveis, para não confudirmos com as de outras triggers.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por VicToR em 2011-06-30, 13:35

Muito bom, pena que nao tem o ''thanks'' só o ''+'' ;D

OFF -----

Seria tão bom se tivesse como criar category dentro do Variable Editor *-*

VicToR

Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 13305

Warning Necropost
4 / 1004 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-06-30, 16:48

kkkkk Nem em jass tem. Só o vJass que é OO.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por GuLider em 2011-07-06, 13:28

Só uma pergunta, eu baixei um TD que não estava bloqueado que era em MUI o sistema de creeps, os TD's são em MUI?


Criando uma Sign Básica
Tipografias
Efeitos em Tipografias
Entendendo a Lógica das Triggers
--------------------------------------------
A procura de um tutorial? Clique Aqui!

Quero Aprender Photoshop, se você quer aprender Photoshop, esse é seu lugar

GuLider

Número de Posts : 907
Data de inscrição : 16/05/2011
Reputação : 47 Pontos : 11332

Warning Necropost
0 / 1000 / 100


http://www.queroaprenderphotoshop.wordpress.com

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-07-06, 14:09

Se voce for usar algo triggered que todo player poderá usar, é bom ser MUI.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por mgzaun em 2011-08-10, 20:03

tipo , eu não sou de usar arrays , quando eu faço mais de uma unidade em variavel eu crio outra pra ficar + facil pra mim msm entender ( por exemplo , eu crio uma spell com um target e um caster , eu não crio uma variavel com 2 arrays e sim duas variaveis pra eu entender melhor ) , sendo assim é possivel ter MUI?


Não morro de inveja, mas mato muita gente.
( brincadeira galera =D )


SE GOSTOU DO MEU CONTEÚDO É SÓ DAR UM THANKS , NÃO SEJA UM SANGUE-SUGA !!



mgzaun

Número de Posts : 138
Data de inscrição : 11/05/2011
Reputação : 4 Pontos : 10405

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por VicToR em 2011-08-10, 20:32

mgzaun escreveu:tipo , eu não sou de usar arrays , quando eu faço mais de uma unidade em variavel eu crio outra pra ficar + facil pra mim msm entender ( por exemplo , eu crio uma spell com um target e um caster , eu não crio uma variavel com 2 arrays e sim duas variaveis pra eu entender melhor ) , sendo assim é possivel ter MUI?

Assim é impossivel o_O

VicToR

Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 13305

Warning Necropost
4 / 1004 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-08-11, 01:39

Seria possivel com hashtables. Mesmo assim hashtables nunca irá se comparar com variaveis.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por brutallouco em 2011-08-11, 09:42

Cara tenho uma perguntinha...
a custom script call RemoveLocation(udg_TempLoc[0])
da erro se modificala para localização com index
call RemoveLocation(udg_TempLoc[Index])
tem algum jeito de remover localização com index?

brutallouco

Número de Posts : 29
Data de inscrição : 01/07/2011
Reputação : 2 Pontos : 9957

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-08-11, 09:50

Toda variavel que voce criar no seu Trigger Editor, em jass (custom script) ela terá o nome de udg_SuaVariável. Veja como ficaria seu código:

call RemoveLocation(udg_TempLoc[udg_Index])

Caso bata curiosidade, UDG significa USER DEFINED GLOBAL (global definida pelo usuário). =D


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por brutallouco em 2011-08-11, 09:57

vlwwwwww

Edit: Não acho o +rep onde ele fica?

brutallouco

Número de Posts : 29
Data de inscrição : 01/07/2011
Reputação : 2 Pontos : 9957

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Bills em 2011-08-11, 10:02

Do lado do offline/online no canto direito, é aquele sinal de adição (+).

Que bom que ajudei alguém =D


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!


Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 17529

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por VicToR em 2011-08-11, 11:17

Bills escreveu:Do lado do offline/online no canto direito, é aquele sinal de adição (+).

Que bom que ajudei alguém =D

KKKKK até que enfim, voce só critica os manolo o//

VicToR

Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 13305

Warning Necropost
4 / 1004 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por brutallouco em 2011-08-11, 12:25




Forum tá me trollando???
sauheauehasuesaueas

brutallouco

Número de Posts : 29
Data de inscrição : 01/07/2011
Reputação : 2 Pontos : 9957

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por VicToR em 2011-08-11, 13:49

EUHAEUAEHUAEHUEHAEU

Voce nao é o dono do topico, por tanto, tá vendo aquela barrainha verde ? Clica no +

VicToR

Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 13305

Warning Necropost
4 / 1004 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por brutallouco em 2011-08-11, 14:56

reputação da mensagem 100% (7votos) e n dá pra clicar ^^

brutallouco

Número de Posts : 29
Data de inscrição : 01/07/2011
Reputação : 2 Pontos : 9957

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] MUI - Básico

Mensagem por Conteúdo patrocinado Hoje à(s) 01:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum