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] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Página 2 de 2 Anterior  1, 2

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

[TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por Iky em 2011-05-21, 20:07

Relembrando a primeira mensagem :

Breve Introdução


Bem, este tutorial é sobre um system de movimento udado em muitos spells, um dos exemplos mais famosos é o knockback, embora seja extremamente necessitado o conhecimento deste dito de "tecnica" em spells que envolvem movimento, poucas pessoas realmente sabem movimentar em trigger, por isso criei este topico com um spell exemplo para que eu possa explicar melhor a logica de movimento em trigger.

Bem vou usar dois maps, o de knockback ( Download ) e de knockback em area( Download )
knock back area screenshot trigger
Spoiler:


.

Indice:
Magia de base
A trigger de inicio da magia
A trigger que realmente importa
Finalizando a spell
Resumão (pra quem nao quer ler tuuudo)
knock back em group //!novo



Magia de base



Usei o storm bolt, como magia de base. Se você estiver se perguntando como mecher nesse storm bolt? Bem leia um pouco sobre object editor, tem um tutorial aqui no teamkings.

Bem voltando eu usei o storm bolt como base na spell e editei umas coisinhas principalmente o dano para 0 (item D ), tirei o missel art (item A ), tirei a velocidade do missel (item C ), retirei tambem os buffs, que originalmente é o de stun(item E) e mudei a cast range, que é a distancia minima que ele pode estar para ativar a spell (item F)

Spoiler:



A trigger de inicio da magia



Bem, configuramos a spell que vai desencadear as trigger que fazem parte da nossa spell, agora so falta as propias triggers
entao vamos la, eu criei 3 triggers, a primeira se chama KnockBack INIT ( o nome nao importa ) com initiality on, a segunda KnockBack MOVE ( o nome nunca importa ) com initiality off e a utima KnockBack END com initiality on
vamos a primeira:

A ideia desta primeira trigger é capturar a ocorrencia da spell , o alvo e o dono da spell
por isso eu criei 2 variaveis (<< se nao sabe nada sobre variavel sugiro ler este tuto do raziel sobre variaveis, vai ajudar ),
uma variavel é de unit com array [2] e uma point, criei uma variavel real e uma variavel timer (variavel usada em contagem regressiva) .

fiz o seguinte: primeiro coloquei um evento de uma unidade iniciando uma spell e coloquei a condition como a spell do hero que eu criei,
em seguida editei as veriaveis .

Variavel de unit [1] como a unidade responnsavel pelo evento (A), no caso a responsavel por iniciar a spell como tar em event,
editei a variavel de unit [2] como o alvo da ação (B).
Em seguida editei a variavel point como a posição da unidade alvo (C),
defini a variavel real como o angulo de visao da unidade alvo (D); tudo isso vou usar no movimento ;
adicionei um efeito para deixar mais atraente (E),
dei um dano a unidade alvo para começar (F),
pausei o hero (G), destroi o efeito especial (H),
iniciei uma contagem regressiva usando uma timer (I),
ativei a trigger de movimento ate entao desativada (J) e por ultimo ,mas nao menos importante
removi o point que eu criei para evitar leaks (veja sobre leaks aqui )


Spoiler:




A trigger que realmente importa



bem é nessa proxima trigger que esta a magia do movimento, ao ver a imagem vcs vao ver que nao é nada demais, quase tudo na programação é questao de visao e bom gosto.
Bem nesta trigger, que vai ser ativada pela anterior , usaremos :
a variavel point[1],
a variavel real e criaremos a point[2],
Bem,,, inicei a trigger com um event de periodic time ( que literalmente significa tempo periodico, ou seja de tempo em tempo )

é isso que vai dar o efeito de movimento, por que na verdade, essa tecnica de movimento, frequentemente usada por programadares warcraft , nada mais é do que mover instantaniamente de um ponto pra outro muito proximo, em pouquissimo tempo, isso claro repetido vaaaarias vezes, a maioria usa 0.02 seconds, significa que em 1 segundo a trigger é repetida 50 vezes (sei la se é assim msm,,, hummm 0.02x5=0.10,,,0.10x10 = 1.00,, é isso msm 50 vezes), o q dar o efeito de que a unit esta sendo "arrastada" no mapa.

bem o periodic event q eu usei foi de 0.05 seconds (A), usei uma contidion que para o movimento nao tem importancia menhuma, que foi (unit[2] is alive) equal true (B), qur significa q so vai executar as actions se a unidade alvo, que é a unit[2] definida la atras, estiver viva, para mim é bom para nao acabar arrastando a unit mesmo se ela tiver morta kkkk.
action:
eu resetei as variaveis point[1] (C) , real ( que é o angulo de visao do alvo ) (D) e criei uma nova variavel a point[2] (E)
eu a fiz com o seguinte pensamento: ela é um point with polar offset ( a respeito deste, aqui no tk nao achei, achei no thehelper, mas ta em ingles, é o jeito mas se quiser do uma rapida explicação depois dou link),
onde como ponto de partida usei a posição do unit[2] na distancia de 50 (para quem nao faz ideia, é + - assim : a distancia de uma unit que ataca corpo a corpo é de 100, seria metade desta distancia coisa de 1/2 centimetro +- se vc for medir na tela) na direçao , bemmm a direção fiz uma conta, no warcraft msm,
peguei o angulo de visao da unidade alvo (variavel que eu to chamando de real) e adicionei 180, (para quem nao faz ideia o que isse 180 significa veja aqui um tuto do jeverson sobre angulos), criei um efeitozinho para animar(F), coloquei um dano de 5 (H) na unit[2] e
"mandei" a unidade mover instantaniamente para o point[2] (I),
tirei o efeito que criei (J) , para nao ficar criando toda horaa e ficaria uma confusao, lag, etc... e removi os points para nao causar leak (L) , aprendi do lcc ^^.

Spoiler:


Finalizando a spell


Bem essa ultima trigger , ela é sem "importancia", ela tem a funçõa de "desligar" tudo .
ela so ativa quando termina o countdown que eu fiz laaa na primeira trigger (A), ou seja depois de 2 segundos apos ter iniciado a spell,
ela "despausa" a unit[1], o hero da spell, tira o valor das variavels (B) e desativa a KnockBack MOVE (C), a trigger de movimento.

Spoiler:


Resumão



RESUMINDO:
a trigger de movimento, ela acontece de pouquissimo tempo em pouquissimo tempo, para dar o de que esta andando, pega a posiçào atual do objeto, pode ser qualquer coisa dummy(geralmente em spells de misseis) e units (como neste caso, com a unidade alvo), define uma variavel de point, ou posição, que é criado com referencia a posição da unidade que esta sendo movida, mas so que um pouco mais distante usando como direção tb o angulo de visao da unidade movida,e em seguida move instantaniamente, ou seja meio que "teletransporta", mas isso tudo é feito repetidas vezes que o efeito é de que esta se movendo, bem é isso, aberto a criticas e perguntas ^^,,, a sim se eu realmente ajudei, da um + pf



Knock back em area




O conceito de knock back area é na verdade bem simples: criar um unit group (unit group é um grupo de unidades) e fazer knock back em todas sendo o ponto para onde elas vao, um ponto com o angulo igual Angulo entre a posição do caster e da unidade. Eu fiz a spell em mui, o qu e MUI? veja o spoiler

Spoiler:

mui é um systema em que se cria "tabelas" de variaveis, onde uma variavel contadora aumenta cada vez que inicia a spell, criando as variaveis ex.: caster[variavel_contadora]=trigger unit, se a variavel_contadora for igual a 1, (exemplo) significa que caster[1]=trigger unit certo? ai quando iniciar denovo a spell, a variavel_contadora vai aumentar 1, criando uma variavel caster [variavel_contadora] com o valor atual, criando "tabelas" de variaveis de acordo com sua numeração, veja a dinâmica abaixo

//Certo , mas como isso vai ajudar em outra trigger??
bem, ha uma coisa que nao expliquei, é o uso de flags (que literalmente significa: bandeira, servido realmente como "bandeira", ou "sinal", nada mais do que uma variavel booleana (variavel de dois valores, true, verdadeiro, e false, falso) que tem a função de dizer se a numeraçao ta em uso, criamos essa variavel no inicio da spell (na trigger que identifica a magia lançada) coomo bandeira[contador]=true (o nome nao importa, o que importa na var é ela ser array e o index da array for do contador atual)
, veja a dinamica pra melhor copreensão



//E no caso de spell que tem tempo?
bem, neste caso, o jeito mais facil é caulando, exe.: a trigger ocorre a cada 0.03 s, vc quer qu excute por 1s, entao vc calcula 0.03 x 100 = 3s, 3/3 =1s, pronto XD, ai vc faz um if, dizendo que rodara os comandos enquanto tal variavel for menor que ((0.03x100)/3).




Última edição por Iky em 2011-11-27, 04:37, editado 19 vez(es)



Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 16899

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo


Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por Iky em 2011-11-27, 15:15

ta no codigo



Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 16899

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por VicToR em 2011-11-27, 19:44

Então... simplificado, ficaria mais ou menos assim ?

Código:

<a href="#meio">Ir para o Meio</a>
<div id="meio">Meio</div>

VicToR

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

Warning Necropost
4 / 1004 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por Iky em 2011-11-27, 19:56

ee



Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 16899

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por fg8d78e48sro em 2011-11-28, 21:02

OFF total :

isso me lembro uam vez um forum que eu deixei na minah assinatura um video do youtube no autoplay de tamanho 1x1 pixel ai ficava tipo um pontinho e tocando uma musica que ninguem sabia da onde vinha kkkkk

deixei dakele jeito uma semana só pra trola os cara



Dê uma olhada no meu map : http://teamkings.forumeiros.com/t2951-divulgacao-3-heroes-war-12c#28895

http://www.epicwar.com/maps/190527/

fg8d78e48sro

Número de Posts : 1073
Data de inscrição : 07/11/2011
Reputação : 63 Pontos : 12220

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por d.troquatte em 2012-12-31, 11:52

Ou eu sou muito Burro OU eu tenho dificuldade com programação mesmo!!!

d.troquatte

Número de Posts : 115
Data de inscrição : 01/11/2010
Reputação : 5 Pontos : 11431

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Movimento de undade por trigger (knockback) || MUI extra || KB group demo map extra

Mensagem por Conteúdo patrocinado Hoje à(s) 11:12


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 2 de 2 Anterior  1, 2

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