[Resolvido] Como fazer a magia Shockwave em triggers.
+2
TroiA
hamud
6 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 2
Página 1 de 2 • 1, 2
[Resolvido] Como fazer a magia Shockwave em triggers.
Ola a todos , queria saber como faço a magia Shockwave em triggers, não precisa ser aquele jeito todo "complexo" o basico msm pq depois eu possa desenvolvela ou algo do tipo é mais para fins de estudos obrigado
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Faça da seguinte maneira, se não me engano é de fato assim:
- Código:
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Shockwave
Actions
Set Caster = (Triggering unit)
Set Points[1] = (Position of Caster)
Set Points[2] = (Target point of ability being cast)
Set Points[3] = (Points[1] offset by 70.00 towards (Angle from Points[1] to Points[2]) degrees)
Set Real[1] = 950.00
Set Real[2] = (2.00 + (Real((Level of Shockwave for Caster))))
Set Real[3] = (20.00 + (70.00 x (Real((Level of Shockwave for Caster)))))
Unit - Create 1 The Shockwave for (Owner of Caster) at Points[3] facing (Angle from Points[1] to Points[2]) degrees
Hashtable - Save Handle OfCaster as 0 of (Key (Last created unit)) in Hashtable
Hashtable - Save Real[1] as 1 of (Key (Last created unit)) in Hashtable
Hashtable - Save Real[1] as 2 of (Key (Last created unit)) in Hashtable
Hashtable - Save Real[2] as 3 of (Key (Last created unit)) in Hashtable
Hashtable - Save Real[3] as 4 of (Key (Last created unit)) in Hashtable
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Shockwaves is empty) Equal to True
Then - Actions
Trigger - Turn on Shockwave Slide <gen>
Else - Actions
Custom script: call RemoveLocation(udg_Points[1])
Custom script: call RemoveLocation(udg_Points[2])
Custom script: call RemoveLocation(udg_Points[3])
Última edição por TroiA em 2013-07-06, 19:06, editado 3 vez(es) (Motivo da edição : Configurações)
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
É aconselhado fazer ela por trigger mesmo... A original causa lag. ")
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
tipo, esse é o jeito simples? com hash e tudo , pq eu n manjo disso
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
É o jeito mais correto. Deslocar um objeto (unit) como se fosse um projétil é através de um timer. Como timers não podem possuir callbacks, as informações necessárias devem ser armazenadas em hash's...
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
então deicha msm assim vlw a ajuda
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
É que ele não sabe Hashtable...
Por GUI seria facil, crie uma duvida e depois faça com que ela se mova por uma periódica até uma certa distancia.
Primeiro crie as seguinte variaveis:
Caster = Unit
Dummy = Unit
Distance = Real
Caster_Point = Point
Dummy_Point = Point
Dummy_Point_Move = Point
Group = Unit Group
Group_2 = Unit Group
E então coloque da seguinte forma:
Esta é a primeira trigger, primeiro setaremos a caster e a caster_point, para que podemos criar a Dummy na point do caster. Depois, criaremos a dummy na point e facing em direção a caster, como pode dizer na imagem. Em seguida, setamos a variavel distance, a distancia máxima em que ela percorrerá, e por fim coloque a Trigger Loop On, para que comece a periódica.
Vamos a segunda Trigger:
Bom, começamos esta trigger fazendo que ela se repita a cada 0.03 em uma periódica. Depois, setamos a point_dummy, e depois a Point_Dummy_Move, lembrando que a point_Dummy_move é a varaivel que vai mover a Dummy. Depois, façamos que ela se Mova em direção a Point_Dummy_Move, com a action Unit - Move Unit Instaly. Logo depois setaremos a variavel distancia, fazendo com que a velocidade, ou seja, a range que a dummy percorrerá em direção a sua face. como pode ver, quando a distancia chegar a 0, fazemos com que a dummy morra e a trigger acabe ^^. Caso precise, dê uma olhada no mapa Demo que providenciei. Qualquer dúvida pode falar.
Detalhe, não é MUI.
Download
Por GUI seria facil, crie uma duvida e depois faça com que ela se mova por uma periódica até uma certa distancia.
Primeiro crie as seguinte variaveis:
Caster = Unit
Dummy = Unit
Distance = Real
Caster_Point = Point
Dummy_Point = Point
Dummy_Point_Move = Point
Group = Unit Group
Group_2 = Unit Group
E então coloque da seguinte forma:
Esta é a primeira trigger, primeiro setaremos a caster e a caster_point, para que podemos criar a Dummy na point do caster. Depois, criaremos a dummy na point e facing em direção a caster, como pode dizer na imagem. Em seguida, setamos a variavel distance, a distancia máxima em que ela percorrerá, e por fim coloque a Trigger Loop On, para que comece a periódica.
Vamos a segunda Trigger:
Bom, começamos esta trigger fazendo que ela se repita a cada 0.03 em uma periódica. Depois, setamos a point_dummy, e depois a Point_Dummy_Move, lembrando que a point_Dummy_move é a varaivel que vai mover a Dummy. Depois, façamos que ela se Mova em direção a Point_Dummy_Move, com a action Unit - Move Unit Instaly. Logo depois setaremos a variavel distancia, fazendo com que a velocidade, ou seja, a range que a dummy percorrerá em direção a sua face. como pode ver, quando a distancia chegar a 0, fazemos com que a dummy morra e a trigger acabe ^^. Caso precise, dê uma olhada no mapa Demo que providenciei. Qualquer dúvida pode falar.
Detalhe, não é MUI.
Download
Última edição por Black.Rock.TerrO em 2013-07-08, 09:45, editado 2 vez(es)
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Vlw terror desse jeito eu entendi a maioria da spell !! , mas eu não entendi a Variavel "Distance".
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Distance, é a variavel que usamos para definir em que distancia a unidade Dummy morrerá e terminará a magia. Se definirmos um valor a ela, e diminuímos o valor na periódica, ou seja, a variavel ficará assim, na teoria:
Set Distancia = Distancia Máxima - Velocidade que se percorreu, e assim faríamos com que a unidade dummy percorresse uma distancia de valor definido. Qualquer dúvida só falar ^^.
Set Distancia = Distancia Máxima - Velocidade que se percorreu, e assim faríamos com que a unidade dummy percorresse uma distancia de valor definido. Qualquer dúvida só falar ^^.
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
O sistema de movimentação de um projétil é utilizado nessas duas skills que eu fiz, só que em vJass.
Se um dia você decidir estudar Jass e vJass, pode lhe ser útil.
[Spell] Throw Axe v2.0
[Spell] Triple Wave
Se um dia você decidir estudar Jass e vJass, pode lhe ser útil.
[Spell] Throw Axe v2.0
[Spell] Triple Wave
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Gilga vlw aee só que vjass agora pra mim n dá pq estou também estudando Javascript.
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
só mais um problema, não consigo colocar dano na spell :/
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
hamud escreveu:só mais um problema, não consigo colocar dano na spell :/
Você deve criar dois grupos (unit group), em seguida deve percorrer (loop) o primeiro grupo da seguinte forma:
1) O Primeiro grupo pega todas as unidades inimigas (Matching Unit) ao redor do projétil, verifica se a unidade pega tá viva e por fim e mais importante, verifica se a unidade pega não está no segundo grupo.
2) Caso a unidade pega não esteja no segundo grupo, crie uma função para causar dano á mesma e em seguida adicione ela ao segundo grupo para que não sofra danos mais de uma vez.
3) Lembre-se de limpar (ClearGroup) e destruir (DestroyGroup) ambos os grupos no termino da spell.
-----
Espero que seja útil. ")
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Gilgamesh escreveu:Problema simples parceiro. Só acho que vou precisar da ajuda do TerrO ou de qualquer um mestre em GUI pra explicar, já que só sei fazer em Jass.
Você deve criar dois grupos (unit group), em seguida deve percorrer (loop) o primeiro grupo da seguinte forma:
1) O Primeiro grupo pega todas as unidades inimigas (Matching Unit) ao redor do projétil, verifica se a unidade pega tá viva e por fim e mais importante, verifica se a unidade pega não está no segundo grupo.
2) Caso a unidade pega não esteja no segundo grupo, crie uma função para causar dano á mesma e em seguida adicione ela ao segundo grupo para que não sofra danos mais de uma vez.
3) Lembre-se de limpar (ClearGroup) e destruir (DestroyGroup) ambos os grupos no termino da spell.
-----
Espero que seja útil. ")
Pior que ele não ta errado e_e
a unica coisa que me complicou foi o Matching Unit, quando eu tentei usar ela, não deu certo, talvez seja por um outro motivo, eu crio o Group e dou a condição depois que crio ele, talvez seja por isso.
Bom, vamos lá né.
Gilgamesh escreveu:1) O Primeiro grupo pega todas as unidades inimigas (Matching Unit) ao redor do projétil, verifica se a unidade pega tá viva e por fim e mais importante, verifica se a unidade pega não está no segundo grupo.
é Exatamente como ele diz, só que para fazer isso, você deve adicionar a condition dentro dele, ou usar da mesmo forma que eu usei no exemplo, não sei se altera algo, nunca notei. O primeiro group vai atingir as unidades que não estão incluídas no Group_2, ou seja, primeiro ele da o dano, depois adicionar ao Group_2, isso faz com que o Group não repita o dano e então levar um dano certo a cada vez que a magia for lançada nesta unidade.
Gilgamesh escreveu:2) Caso a unidade pega não esteja no segundo grupo, crie uma função para causar dano á mesma e em seguida adicione ela ao segundo grupo para que não sofra danos mais de uma vez.
Confirmado oque ele disse, como acabei de dizer antes:
Crie esta condição. Oque ela faz? Ela verifica se a unidade Picked Unit esta no Group_2, ou seja, se ela não estiver, ela vai levar um certo dano e depois ser adicionada a Group_2 para que não leve mais nenhum dano.
Gilgamesh escreveu:3) Lembre-se de limpar (ClearGroup) e destruir (DestroyGroup) ambos os grupos no termino da spell.
Esta parte que Gil mencionou, é super importante, tanto de Destroy Group quando Clear Group, pois sem elas a magia não funcionará pela segunda vez. Por que? As unidade que foram adicionadas ao Group_2, ficarão lá pro resto da vida delas, isso se não tiver a Condition que ela só será atingida se estiver viva. Então, Clear Group_2 é super importante para que podemos tirar todas as unidades que adicionamos ao Group_2 para que elas levem dano pela segunda vez quando a magia for usadas novamente. Com certeza, Group gera leak, então destruir ele seria algo sensato. Só que, existe algo que você nunca deve fazer, é Destruir o Group_2, o Group secundário. Pois se destruirmos ele, não será possível adicionar Unidades a ele e então as unidades sofreram danos consecutivos. Com tudo, ficará assim:
Aqui está o mapa novamente upado:
Download
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Fiz alguns ajustes na sua demo, TerrO. Um ponto bem importante lá era a forma como você calculou a distância do projétil.
---
Download (GUI Spell)
- Open Source: pode ser aberto no World Editor.
---
Download (GUI Spell)
- Open Source: pode ser aberto no World Editor.
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
O mapa '-'
não ta dando pra abrir.
Pode postar oque você mudou?
não ta dando pra abrir.
Pode postar oque você mudou?
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
- Dicas de compactação e remoção de trash code do script.
- Dicas e exemplos de como: Utilizar X e Y sempre que possível. (evitar point location)
- Modo correto pra calcular a distância, o deslocamento e o angulo direcional do um projétil, utilizando a função Distance Between Points.
- Valor do dano como fator de multiplicação do nível da magia;
Pra abrir o USMWE deve tá ativado. Caso o UMSWE esteja ativado e ainda assim não funcione, quer dizer que o mesmo tá corrompido (antivirus) ou em uma versão antiga.
---
Um abraço.
- Dicas e exemplos de como: Utilizar X e Y sempre que possível. (evitar point location)
- Modo correto pra calcular a distância, o deslocamento e o angulo direcional do um projétil, utilizando a função Distance Between Points.
- Valor do dano como fator de multiplicação do nível da magia;
Pra abrir o USMWE deve tá ativado. Caso o UMSWE esteja ativado e ainda assim não funcione, quer dizer que o mesmo tá corrompido (antivirus) ou em uma versão antiga.
---
Um abraço.
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Fiquei curioso para ver sua versão, não teria como postar uma versão sem o UMSWE? Estou utilizando de 3G e sem o mesmo.
Chrono_Kid- Número de Posts : 329
Data de inscrição : 18/09/2011
Reputação : 16 Pontos : 24077
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
3G? Welcome to the Family! rsrs'
Dá, até que dá... Só que não dá!?
Einn? Eu explico: O UMSWE possui uma biblioteca (.lua) avançada, Com mais funções tanto em GUI quanto em Jass. Por tanto eu teria que extrair manualmente essa biblioteca ou recriar a mesma de dentro do arquivo .lua.
Essa é a parte que complica. Eu não sei programação LUA.
---
Dá, até que dá... Só que não dá!?
Einn? Eu explico: O UMSWE possui uma biblioteca (.lua) avançada, Com mais funções tanto em GUI quanto em Jass. Por tanto eu teria que extrair manualmente essa biblioteca ou recriar a mesma de dentro do arquivo .lua.
Essa é a parte que complica. Eu não sei programação LUA.
---
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
no UMSWE eu ate estou ligado... usava ele bem no começo da programação. Mas hoje em dia fico só no padrão mesmo. Mas não tem como postar pelo menos prints das trigger?
Chrono_Kid- Número de Posts : 329
Data de inscrição : 18/09/2011
Reputação : 16 Pontos : 24077
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Eu entendi parte disso , eu sou INICIANTE em Triggers :/
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
bom nao sei se vc ja entendeu como coloca dano mas vo da uma maneira simples que eh feita no object
voce cria uma custom spell usano a abilidade permanent immolation e la coloca o dano que quer que cause e depois retire todos os efeitos dela e pronto vai ta causando dano(esse e o modo mas mixuruca lol)
voce cria uma custom spell usano a abilidade permanent immolation e la coloca o dano que quer que cause e depois retire todos os efeitos dela e pronto vai ta causando dano(esse e o modo mas mixuruca lol)
Joker- Número de Posts : 447
Data de inscrição : 03/08/2012
Reputação : 62 Pontos : 26168
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
Não é uma má ideia considerando que alguns são saibam group, eu já fiz isso, só não me lembro se deu exatamente certo kkkk
Re: [Resolvido] Como fazer a magia Shockwave em triggers.
izzethe, vou tentar de sua forma, me desculpem todos mais sou bem noob em world edit comecei agora e peço que tenham paciencia cmg :/
hamud- Número de Posts : 45
Data de inscrição : 28/01/2011
Reputação : 1 Pontos : 24756
Página 1 de 2 • 1, 2
Tópicos semelhantes
» Como Fazer Magia No Trigger
» Como fazer uma magia que aumenta o range?
» Como fazer um Floating Text do Dano de uma Magia???
» Como fazer dummys em linha reta ( numa magia )
» [Resolvido] Como eu faço pra mudar a animacao da magia?
» Como fazer uma magia que aumenta o range?
» Como fazer um Floating Text do Dano de uma Magia???
» Como fazer dummys em linha reta ( numa magia )
» [Resolvido] Como eu faço pra mudar a animacao da magia?
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos
|
|