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!



Onde tem Leak?

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

Onde tem Leak?

Mensagem por DarTiN em 2010-09-12, 01:10

Olá galera, alguém, porfavor, pode me dizer se vê algum leak nesta trigger de skill que acabei de fazer?

E por fim... Como retirar este maldito "WAIT", que não gostaria de usar mas, sem ele os lights effects somem antes de aparecer?

Spoiler:

Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Teste
Actions
Set CasterPoint[1] = (Position of (Triggering unit))
Unit - Create 1 Peasant for (Owner of (Triggering unit)) at CasterPoint[1] facing Default building facing degrees
Unit - Add Fire Central to (Last created unit)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
For each (Integer A) from 1 to 40, do (Actions)
Loop - Actions
Unit - Create 1 Peasant for (Owner of (Triggering unit)) at CasterPoint[1] facing ((Real((Integer A))) x 9.00) degrees
Unit - Add Fire to (Last created unit)
Set CasterPoint[2] = (CasterPoint[1] offset by 600.00 towards ((Real((Integer A))) x 9.00) degrees)
Special Effect - Create a special effect at CasterPoint[2] using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit - Move (Last created unit) instantly to CasterPoint[2]
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation (udg_CasterPoint[2])
Set CasterPoint[3] = (CasterPoint[1] offset by (0.00, 600.00))
Set CasterPoint[7] = (CasterPoint[1] offset by (-350.00, -550.00))
Set CasterPoint[4] = (CasterPoint[1] offset by (350.00, -550.00))
Set CasterPoint[5] = (CasterPoint[1] offset by (-550.00, 280.00))
Set CasterPoint[6] = (CasterPoint[1] offset by (550.00, 280.00))
Set Up = 0
For each (Integer A) from 1 to 4, do (Actions)
Loop - Actions
Lightning - Create a Spirit Link lightning effect from source CasterPoint[(Up + 3)] to target CasterPoint[(Up + 4)]
Set Light[(Up + 1)] = (Last created lightning effect)
Set Up = (Up + 1)
Lightning - Create a Spirit Link lightning effect from source CasterPoint[7] to target CasterPoint[3]
Set Light[5] = (Last created lightning effect)
Wait 1.00 seconds
Custom script: call RemoveLocation (udg_CasterPoint[1])
Custom script: call RemoveLocation (udg_CasterPoint[3])
Custom script: call RemoveLocation (udg_CasterPoint[4])
Custom script: call RemoveLocation (udg_CasterPoint[5])
Custom script: call RemoveLocation (udg_CasterPoint[6])
Custom script: call RemoveLocation (udg_CasterPoint[7])
Lightning - Destroy Light[1]
Lightning - Destroy Light[2]
Lightning - Destroy Light[3]
Lightning - Destroy Light[4]
Lightning - Destroy Light[5]

IMAGEM:
Spoiler:

(EDIT: Apesar de que, nesta trigger, não vejo tanto problema no wait, já que há variável para os effects e points e pelo cooldown da skill naturalmente não bugará com outra skill.)

DarTiN

Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 12707

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por lcc em 2010-09-12, 02:11

A magia ficou muito boa Visualmente tanto quanto programada
não ha leaks que eu tenha visto
jogue os custon scripts de point acima do wait
Spoiler:
Custom script: call RemoveLocation (udg_CasterPoint[1])
Custom script: call RemoveLocation (udg_CasterPoint[3])
Custom script: call RemoveLocation (udg_CasterPoint[4])
Custom script: call RemoveLocation (udg_CasterPoint[5])
Custom script: call RemoveLocation (udg_CasterPoint[6])
Custom script: call RemoveLocation (udg_CasterPoint[7])
o problema do wait é que a magia não sera mais MUI ou se existir outra habilidade no mapa que reseta o cooldown das habilidades da unit pode bugar uma forma de isso não acontecer é usando variavel local assim nem precissa remover o wait
basta um
local lightning udg_nomedavariavel
depois de destrui-lo use
set udg_nomedavariavel = null
simples agora se vc não querer usar local eu não vejo outra forma além de hashtables
só a variavel dos lightning effects que precissão ser locais
quando for postar trigger use a tag [ code] [ /code] para que o forúm não coma os espaços


Quer ajudar alguém? Então leia isso

____________________________________

lcc

Número de Posts : 933
Data de inscrição : 13/07/2010
Reputação : 104 Pontos : 13209

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por DarTiN em 2010-09-12, 02:15

vlw, só me explica esta difernça, porfavor... MUI??? Até hj não sei o significado destas siglas. Procuro na net as vezes sem resposta.

Local da criação da light?

Este custom:set udg_nomedavariavel = null

Após destruir o local?

DarTiN

Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 12707

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por lcc em 2010-09-12, 02:35

MUI - Multi-Unit-Instanceable
Permite que a magia(ou outras coisas) possa ser usado por mais de uma unidade no mapa sem que bugue trave os efeitos
EX:

uma trigger não MUI
Código:

    Events
        Unit - A unit Dies
    Conditions
    Actions
        Set unidade = (Triggering unit)
        Wait 10.00 seconds
        Game - Display to (All players) the text: (Name of unidade)
se uma unidade morrer ela sera salva depois de 10 segundos ira mostrar o nome de quem esta salvo na variavel unidade
bom mais se uma unit morrer 2 segundos depois que a trigger foi disparada uma vez agora a variavel unidade (==) é igual a unidade que morreu depois
agora
Código:

    Events
        Unit - A unit Is attacked
    Conditions
    Actions
        Set unidade = (Triggering unit)
        Unit - Pause unidade
        Wait 10.00 seconds
        Unit - Unpause unidade
se uma unidade for atacada ela sera pausada e em 10 segundos ela sera despausada
mais imagine que 4 segundos depois que uma unidade é pausada outra unit é atacada
então daqui 6 segundos ela sera despausada porq ela que é novo valor da variavel unit

Só é possivel declarar variavel local no inicio da trigger (na verdade inicio da function)
ou seja os custon scripts que declarão locais tem que ficar antes de tudo até mesmo da action
Set CasterPoint[1] = (Position of (Triggering unit))
o custon script set udg_nomedavariavel = null
fica depois que vc destruiu os lightning
outra coisa eu numca declarei variavel local de GUI com array
mais em jass variavel com array ficaria assim
EX: local unit array unidade[0] = GetTriggerUnit()
porq sem udg_ porque udg_ só é usado como préfixo de variaveis globais de GUI
no meu caso eu estava declarando uma variavel direto em Jass


Quer ajudar alguém? Então leia isso

____________________________________

lcc

Número de Posts : 933
Data de inscrição : 13/07/2010
Reputação : 104 Pontos : 13209

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por DarTiN em 2010-09-12, 02:47

Boa expliação... Entendi.

Sabia o que o santo fazia mas não sabia o nome dele (sobre MUI), mas se eu uso uma wait, com uma variável em que eu declaro claramente qual a unidade com;

Código:
(Unit-type of (Triggering unit)) Equal to "UNIT específica"
ou
(Ability being cast) Equal to "Spell Específica"

Acho que nestes casos o problema é menor. Mesmo havendo um WAIT



DarTiN

Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 12707

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por lcc em 2010-09-12, 02:58

tipo imagine que um hero tenha uma habilidade Refresh
Reseta o cooldown de todas as magias de todos os aliados
agora imagine que o hero use a magia que vc postou a trigger inicial em menos de 1 segundo
o outro hero usa Refresh o hero usa a magia q ↑ novamente
a variavel unit type também seria mudada dinovo ...
os lightning ficarião no local até o fim do jogo caso isso acontecer
por isso o uso de local seria 99% garantido que não iria bugar

OFF:vo durmi agora


Quer ajudar alguém? Então leia isso

____________________________________

lcc

Número de Posts : 933
Data de inscrição : 13/07/2010
Reputação : 104 Pontos : 13209

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por DarTiN em 2010-09-12, 03:00

Vlw Lcc, tópico encerrado... Pode ir dormir em paz, foi de grande ajuda. Dei um voto lá no bereguedeti.

DarTiN

Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 12707

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por Raziel_br em 2010-09-15, 13:31

bem, só para já responder esta e outras duvidas que você possa a ter, isso vai te ajudar muito, explica como destruir leaks

http://www.hiveworkshop.com/forums/triggers-scripts-269/things-leak-35124/

Raziel_br

Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 18899

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por DarTiN em 2010-09-17, 09:51

Ah, vlw, vou dar até uma olhada, na verdade já estou em um bom caminho, sei destruir quase todos os tipos já...

DarTiN

Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 12707

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por Raziel_br em 2010-09-17, 13:04

os mais importantes são os de grupos e de regiões, já que os de special effect é impossivel não saber destruir
xD

Raziel_br

Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 18899

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: Onde tem Leak?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

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