[TUTORIAL] Como caçar Leaks?
+5
VicToR
DarTiN
DarkWerewolf
TroiA
Raziel_br
9 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 1
[TUTORIAL] Como caçar Leaks?
O que é leak?
Imagine que para cada região, ponto, unit group, player group, etc que voce cria, faz um quadradinho que fica guardado em uma caixa(Memoria Ram), por exemplo, voce faz uma magia e esta magia cria um Special Effect e um som em uma região, ou na posição de uma unidade, uma magia é usada várias vezes em um jogo, com isto vários quadradinhos serão criados e com o tempo, de tanto quadradinho uma hora a caixa(memoria ram) estora e seu mapa além de ficar ijogavel porcausa do lag, ainda tem o risco de dar fatal error, eu sofri muito com isso no Animes vs Games xD
Como destruir um Leak?
O mode certo então, não só para pontos mais tmb para unit groups e player groups, é se criar uma variável que armazenará este dado, então o modo correto para se fazer aquela magia é:
Voce cria um Custom Script Escrito:
call RemoveLocation(udg_VariveldePonto)
mais não é este o código para todos, então, eu sugiro que façam como eu faço, em todos os meus mapas eu crio um trigger que eu uso como uma colinha, esta aqui:
a linha de raciocínio é a mesma, voce cria uma variavel para o que voce quer usar e a usa no trigger, logo depoiis voce destroia ela(o que ela armazena)
Outros Leaks:
Special Effect: Talvez o pior de todos, o leak special effect deve ser destruido logo apos aparecer, se você por um wait antes de destruir, não da certo, se voce quiser fazer assim, compensa amsi voce criar uma unidade inutil(dummy unit) que é apenas o modelo do efeito e que tenha a abilidade Locust, que faz ela não poder ser morta e nem poder ser atacada, após a criação desta Dummy unit, voce coloca esta Ação:
Unit add a (seu tempo) Generic expiration timer to (Last Created Unit)(Unit - Add expiration timer)
Outra forma de fazer um Wait para destruir o leak, é uma menos eficiente e eu não uso, é voce criar uma variável para este efeito, é colocar:
set (variavel) = Last Created Special Effect
Wait (seu tempo)
Destroy (variavel)
Sound: simples, logo apos voce tocar um som(logo apos mesmo) voce usar a ação que o destroi, exemplo
Sound - Play (Seu som)
Sound - Destroy (Last played sound)
Programa Útil:
Se voce já sabe importar uma Magia em Jass, voce pode usar isto:
http://www.hiveworkshop.com/forums/spells-569/automatic-memory-leak-destroyer-142630/
Este sistema ajuda a "camuflar" os leaks que voce esqueceu de destruir, eu recomendo que voce use ele só quando voce tem certeza de que deixou escapar muita poca coisa
Modo de uso:
Depois que voce importa-lo, apenas crie um evento que aconteça de 60, em 60 segundos e então voce poe a seguinte ação:
Custom script: call StartDestroyThread()
Imagine que para cada região, ponto, unit group, player group, etc que voce cria, faz um quadradinho que fica guardado em uma caixa(Memoria Ram), por exemplo, voce faz uma magia e esta magia cria um Special Effect e um som em uma região, ou na posição de uma unidade, uma magia é usada várias vezes em um jogo, com isto vários quadradinhos serão criados e com o tempo, de tanto quadradinho uma hora a caixa(memoria ram) estora e seu mapa além de ficar ijogavel porcausa do lag, ainda tem o risco de dar fatal error, eu sofri muito com isso no Animes vs Games xD
Como destruir um Leak?
O mode certo então, não só para pontos mais tmb para unit groups e player groups, é se criar uma variável que armazenará este dado, então o modo correto para se fazer aquela magia é:
Voce cria um Custom Script Escrito:
call RemoveLocation(udg_VariveldePonto)
mais não é este o código para todos, então, eu sugiro que façam como eu faço, em todos os meus mapas eu crio um trigger que eu uso como uma colinha, esta aqui:
a linha de raciocínio é a mesma, voce cria uma variavel para o que voce quer usar e a usa no trigger, logo depoiis voce destroia ela(o que ela armazena)
Outros Leaks:
Special Effect: Talvez o pior de todos, o leak special effect deve ser destruido logo apos aparecer, se você por um wait antes de destruir, não da certo, se voce quiser fazer assim, compensa amsi voce criar uma unidade inutil(dummy unit) que é apenas o modelo do efeito e que tenha a abilidade Locust, que faz ela não poder ser morta e nem poder ser atacada, após a criação desta Dummy unit, voce coloca esta Ação:
Unit add a (seu tempo) Generic expiration timer to (Last Created Unit)(Unit - Add expiration timer)
Outra forma de fazer um Wait para destruir o leak, é uma menos eficiente e eu não uso, é voce criar uma variável para este efeito, é colocar:
set (variavel) = Last Created Special Effect
Wait (seu tempo)
Destroy (variavel)
Sound: simples, logo apos voce tocar um som(logo apos mesmo) voce usar a ação que o destroi, exemplo
Sound - Play (Seu som)
Sound - Destroy (Last played sound)
Programa Útil:
Se voce já sabe importar uma Magia em Jass, voce pode usar isto:
http://www.hiveworkshop.com/forums/spells-569/automatic-memory-leak-destroyer-142630/
Este sistema ajuda a "camuflar" os leaks que voce esqueceu de destruir, eu recomendo que voce use ele só quando voce tem certeza de que deixou escapar muita poca coisa
Modo de uso:
Depois que voce importa-lo, apenas crie um evento que aconteça de 60, em 60 segundos e então voce poe a seguinte ação:
Custom script: call StartDestroyThread()
Tutorial 100% feito por Raziel_br
Última edição por Raziel_br em 2010-09-22, 16:13, editado 1 vez(es)
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
Realmente, muito bom. Vai me ajudar muito no meu mapa na hora de fazer uma custom spell!
DarkWerewolf- Número de Posts : 285
Data de inscrição : 05/10/2009
Reputação : 5 Pontos : 27983
Re: [TUTORIAL] Como caçar Leaks?
xD
pois é, é melhor mesmo voce procurar os leaks enquanto o mapa é ainda não tem 467 triggers(como é o caso do meu), porque ai num acumula trabalho
pois é, é melhor mesmo voce procurar os leaks enquanto o mapa é ainda não tem 467 triggers(como é o caso do meu), porque ai num acumula trabalho
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
Muito bom, me explica uma coisa, esta trigger em jass do hive do link que postou.
Ele todo é usado?
Este: Custom script: call StartDestroyThread(), já é suficiente para varrer os leaks?
EDIT:Perdão, são duas coisas...
Ele todo é usado?
Este: Custom script: call StartDestroyThread(), já é suficiente para varrer os leaks?
EDIT:Perdão, são duas coisas...
DarTiN- Número de Posts : 476
Data de inscrição : 25/07/2010
Reputação : 33 Pontos : 26807
Re: [TUTORIAL] Como caçar Leaks?
sim, menos a pasta test
não é o recomendado, já que não é 100% de certeza e tmb porque ele tem um limite de leaks que pode varrerEste: Custom script: call StartDestroyThread(), já é suficiente para varrer os leaks?
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
LOL!!!
agora eu li aki e vi que retardei!
o Custom script: call StartDestroyThread(), voce usa na magia da hive, ok, sim, ele varre os leaks, o que eu quis dizer é que ele ajuda e muito, faz os "sintomas" do leak demorarem 20 mil vezes mais do que o normal, tem vez que nem aparece, e voce tem que usar isto quando o seu mapa tem poucos leaks, porque este sistema armazena os leaks em uma variável de tamamanho 60 mil, e no meu caso por exemplo, que tem um leaksinho chato que eu nao descobri em qual evento de 0.01 segundos ele ta, esta array explode e de repente seu mapa comessa a da lag...
resumindo:
1-Custom script: call StartDestroyThread() sim, isto varre os leaks
2- A variavel que armazena os leaks tem um limite, se ela "estourar" durante o jogo, seu mapa comessa a dar lag
agora eu li aki e vi que retardei!
o Custom script: call StartDestroyThread(), voce usa na magia da hive, ok, sim, ele varre os leaks, o que eu quis dizer é que ele ajuda e muito, faz os "sintomas" do leak demorarem 20 mil vezes mais do que o normal, tem vez que nem aparece, e voce tem que usar isto quando o seu mapa tem poucos leaks, porque este sistema armazena os leaks em uma variável de tamamanho 60 mil, e no meu caso por exemplo, que tem um leaksinho chato que eu nao descobri em qual evento de 0.01 segundos ele ta, esta array explode e de repente seu mapa comessa a da lag...
resumindo:
1-Custom script: call StartDestroyThread() sim, isto varre os leaks
2- A variavel que armazena os leaks tem um limite, se ela "estourar" durante o jogo, seu mapa comessa a dar lag
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
Falar sobre Leaks é complicado, explicar como caçar leaks é mais complicado ainda, mais com esse tutorial irá ajudar muito a quem está começando agora a entender mais sobre trigger e Leaks.
Re: [TUTORIAL] Como caçar Leaks?
Esqueci de falar:
O custom script que usa antes de criar o Unit group, antes mesmo,(set bg_wantDestroyGroup = true), é usado quando você não declarou variável para o grupo, ou seja, quando voce quer da um "pick every units" de ultima hora, ele não presisa de variáveis, da certo destruir o grupo assim, no entanto é menos eficiente, pois pode deixar alguns vestígios
O custom script que usa antes de criar o Unit group, antes mesmo,(set bg_wantDestroyGroup = true), é usado quando você não declarou variável para o grupo, ou seja, quando voce quer da um "pick every units" de ultima hora, ele não presisa de variáveis, da certo destruir o grupo assim, no entanto é menos eficiente, pois pode deixar alguns vestígios
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
Raziel_br escreveu:
Programa Útil:
Se voce já sabe importar uma Magia em Jass, voce pode usar isto:
http://www.hiveworkshop.com/forums/spells-569/automatic-memory-leak-destroyer-142630/
Este sistema ajuda a "camuflar" os leaks que voce esqueceu de destruir, eu recomendo que voce use ele só quando voce tem certeza de que deixou escapar muita poca coisa
Modo de uso:
Depois que voce importa-lo, apenas crie um evento que aconteça de 60, em 60 segundos e então voce poe a seguinte ação:
Custom script: call StartDestroyThread()Tutorial 100% feito por Raziel_br
Tem como dar uma explicadinha melhor nessa parte ? (que está no quote), isso me interessou bastante
VicToR- Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 27815
Re: [TUTORIAL] Como caçar Leaks?
deve ser que o programa ele verifica se tem um comando que da leak, e em seguida verifica se tem o comando que a destroi, se nem ele cria
eu acho!
eu acho!
Re: [TUTORIAL] Como caçar Leaks?
se eu não me engano, ele armazena os leaks em uma variavel, e de tempo em tempo ele limpa essa variavel
Raziel_br- Número de Posts : 3346
Data de inscrição : 22/10/2008
Reputação : 53 Pontos : 32999
Re: [TUTORIAL] Como caçar Leaks?
Estou tendo problema para passar esse sistema que identifica Leaks para o meu mapa. Alguém poderia me explicar como faço isso? Aqui sempre dá erro.
Tenho uma outra dúvida tbm. Queria saber se os Leaks existem só em Point, UnitGroup e PlayerGroup. E se caso eu crie um special effect ou um floating text sobre uma unidade isso tbm pode ser considerado um Leak?
Tenho uma outra dúvida tbm. Queria saber se os Leaks existem só em Point, UnitGroup e PlayerGroup. E se caso eu crie um special effect ou um floating text sobre uma unidade isso tbm pode ser considerado um Leak?
Fou-lu- Número de Posts : 35
Data de inscrição : 17/05/2013
Reputação : 4 Pontos : 21365
Re: [TUTORIAL] Como caçar Leaks?
Sim, special effect de mais da leak, e também floating text, eu acho...
Wait também é um deles. A Primeira coisa que deve observar é se todas as points foram setadas e removidas. exemplo:
Set = Point
---------------------------------
call RemoveLocation (udg_Point)
o mesmo com Group, e PlayersGroup
Wait também é um deles. A Primeira coisa que deve observar é se todas as points foram setadas e removidas. exemplo:
Set = Point
---------------------------------
call RemoveLocation (udg_Point)
o mesmo com Group, e PlayersGroup
Re: [TUTORIAL] Como caçar Leaks?
E as Wait? Como tiro elas? O tutorial só mostrou como tira os Point, Unit Group e Player Group.
Fou-lu- Número de Posts : 35
Data de inscrição : 17/05/2013
Reputação : 4 Pontos : 21365
Re: [TUTORIAL] Como caçar Leaks?
e_e o único modo é não usa-las. Porem, sei que há situações que é preciso usa-las, mas podemos substituir por periódicas. Mas também seria problemático, criar um monte de trigger, deixando de usar uma ferramento do próprio warcraft, eu acho isso ruim, mas eu me acustumei, porem, se quiser usa-las, você quem sabe, fazer certo ou errado não é nós que vamos julgar. A gente ta aqui pra tirar dúvidas, não te jogar na cara oque você ainda não aprendeu.
Re: [TUTORIAL] Como caçar Leaks?
Muito bom mesmo, comecei a mexer com world editor agora e já estou aprendendo bastante com este fórum, obrigado ai galera
HarrowedSoul- Número de Posts : 4
Data de inscrição : 02/02/2014
Reputação : 1 Pontos : 19740
Tópicos semelhantes
» [Tutorial] - Leaks Básico
» Tutorial Desgraçados Leaks (By .Itap)
» (Tutorial)Como aumentar tamanho dos mob ^^
» [Pedido/Pergunta]Como destruir os leaks desta trigger
» (tutorial)como resolver o erro do model editor que nao abre e como pegar modelos de mapa por ele
» Tutorial Desgraçados Leaks (By .Itap)
» (Tutorial)Como aumentar tamanho dos mob ^^
» [Pedido/Pergunta]Como destruir os leaks desta trigger
» (tutorial)como resolver o erro do model editor que nao abre e como pegar modelos de mapa por ele
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