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!




Participe do fórum, é rápido e fácil

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!


TeaM KingS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Sistema] GUI SpellEvent

5 participantes

Ir para baixo

[Sistema] GUI SpellEvent Empty [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 10:50

Primeiramente devo informar que não sou o criador desse sistema, estou apenas divulgando-o. Os créditos por esse sistema devem ser dados ao Mag (um membro muito gente fina do THW).

O que é SpellEvent?
SpellEvent é um sistema escrito em vjass pelo bribe (outro membro do THW, porem esse não é gente fina). Esse sistema é atualmente usado em qualquer mapa que se preze.
Quando criamos spells, precisamos registrar um evento para saber quando uma magia foi usada. Geralmente em um mapa grande, uma spell terá 12 eventos (um para cada player). Imagine um mapa com umas 200 spells em trigger, seriam 2400 (12 * 200) eventos registrados. O que isso tem haver? Tem haver que quando uma spell fosse usada seriam 2400 chamadas de evento, mas apenas as condições e ações da expecifica spell seriam realmente executadas.
Para evitar esse uso excessivo do sistema, o SpellEvent gera apenas 16 eventos para "todas" as spell. Assim quando uma spell for usada, apenas as condições e ações dela serão realmente chamadas.
Vendo que isso mostra ser uma grande vantagem para todos os mapas, o Mag criou uma versão desse sistema em GUI.
O que eu ganho com isso? Seu mapa terá um desempenho muito maior, pode apostar.

Como usar o SpellEvent em GUI?
Primeiramente vá no THW e baixe o MAPA com o sistema.
Depois, abra o mapa no world editor e copie a trigger "GUI SpellEvent" para o seu mapa.
Atenção: Certifique-se que a opção "Automatically create unknown variables while pasting trigger data" está marcada em "Preferences...".
Feito isso, o sistema está quase pronto para funcionar. Precisamos agora só configurar as spells. Para configurar suas spells, crie um trigger com o evento "Map Initialization" para podermos setar todas as spell e suas respectivas triggers. Veja o exemplo:
[Sistema] GUI SpellEvent SpellEventGUI
Quando já estiver terminado de configurar todas suas spells, adicione no final dessa trigger a action "Trigger - Run (ignoring conditions)" e escolha o trigger "GUI SpellEvent". Não se esqueça de remover os eventos e condições das suas spells, pois você não precisa mais deles. Agora quem controlará os eventos de spells será esse sistema. Feito tudo isso, o sistema estará configurado e pronto para uso.

Coisas que você deve saber:
- Não registre mais que uma trigger por spell.
- Tenha certeza que a trigger GUI SpellEvent foi executada apenas uma vez.
- Não toque nas custom scripts, se não tiver certeza do que está fazendo.

O uso desse sistema é altamente recomendado por mim e pelo THW.
Até a próxima galera!


Última edição por Bills em 2012-05-01, 15:02, editado 1 vez(es)
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Tamires 2012-05-01, 11:15

Deixe-me ver se eu entendi
esse sistema simplismente transforma as 2000 triggers que eu tenho no mapa em 16? O.o,isso sim é legal.
Tamires
Tamires

Número de Posts : 487
Data de inscrição : 09/01/2012
Reputação : 27 Pontos : 25398

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 11:31

Sim, isso mesmo. Mas que legal, é expetacular que o mag tenha feito para poder ser usado em GUI também. =)
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Iky 2012-05-01, 14:01

eu sei que systema em si reponde parte da minha pergunta mais, isso melhoraria o caso da criação de variaveis globais trigger certo?
mas o que eu queria saber é, qual o mais rapido, hashtable ou variaveis locais trigger?
por que a informação que eu tenho é que em gui variaveis trigger nao sao destruidas, aumentando a memoria usada e hashtable sao relativamente lentas, mas teria o msm beneficio (to levando em conta apenas a velocidade e nao a praticidade)
usar
local trigger t = CreateTrigger()
blablabla
set t = null
e usar o sistema com hashtable?
Iky
Iky

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue10 / 10010 / 100[Sistema] GUI SpellEvent Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 14:28

Variaveis são mais rapidas que hashtable, por que hashtable sempre tem que fazer um calculo para chegar no indice desejado.
Variaveis em gui são todas globais, por isso não podem ser destruidas. Elas existiram até o fim da execução do mapa.

Quando vc faz
Código:
local trigger t = CreateTrigger()
...
set t = null

Voce apenas fez com que a variavel local não armazenasse nada. Mas o trigger ( o que pesa na memoria ainda existe). Em muitos sistemas costumamos usar hashtable pela vantagem dos dois indices e por ela armazenar qualquer numero (respeitando o máximo de um integer, que é pouco mais de 2 bilhões). Aqueles raw codes das habilidades ('A000' por exemplo) são numeros de 10 digitos geralmente e a hashtable nos permite armazenar esses numeros como indices (no caso esse foi o motivo do Mag usar hashtable).
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Iky 2012-05-01, 14:35

o que exatamente aconteceria neste caso?
Código:

local trigger t = CreateTrigger()
...
call DestroyTrigger(t)
a trigger aconteceria apenas uma vez? se sim, tem como cria-la novamente?
e a na memoria, destruindo a trigger o pesa ainda fica? (acho q nao, pq nao teria sentido o comando)
Iky
Iky

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue10 / 10010 / 100[Sistema] GUI SpellEvent Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 14:41

Iky escreveu:o que exatamente aconteceria neste caso?
Código:

local trigger t = CreateTrigger()
...
call DestroyTrigger(t)
a trigger aconteceria apenas uma vez? se sim, tem como cria-la novamente?
e a na memoria, destruindo a trigger o pesa ainda fica? (acho q nao, pq nao teria sentido o comando)

O trigger seria criado e destruido, nem tempo dele ser usado teria.
Quando você usa DestroyTrigger voce destroi apenas o trigger, as actions e conditions ainda continuam ocupando memória. Para remover um trigger de maneira correta, voce deve usar TriggerClearActions e TriggerClearConditions e só depois usar DestroyTrigger. Mesmo destruindo a informação voce ainda tem que setar a variavel local com null.
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por DeathYou 2012-05-01, 14:43

Nñ entendi uma parte, pq tem que retirar os eventos das triggers ?
DeathYou
DeathYou

Número de Posts : 136
Data de inscrição : 23/05/2010
Reputação : 4 Pontos : 25859

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Iky 2012-05-01, 14:44

por causa da enorme quantidade de triggers de mesma condition que podem ser evitados


@bills obrigado, +
off
me deu a ideia de tentar (TENTAR) fazer um systema gui para remoção de triggers


Última edição por Iky em 2012-05-01, 14:45, editado 1 vez(es)
Iky
Iky

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue10 / 10010 / 100[Sistema] GUI SpellEvent Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por ArthusBehemoth 2012-05-01, 14:45

tenho algumas duvidas:

1- minhas spells estão sendo feitas em MUI eu preciso ou tenho alguma vantagem de usar este system?

2- aquela parte "coisas que voce deve saber" voce pode dar uma explicação mais detalhada?
ArthusBehemoth
ArthusBehemoth

Número de Posts : 1061
Data de inscrição : 30/03/2011
Reputação : 62 Pontos : 27994

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 14:48

DeathYou escreveu:Nñ entendi uma parte, pq tem que retirar os eventos das triggers ?

Pois você não vai mais precisar de eventos em suas spells. Os unicos eventos de spells no seu mapa serão os 16 que são criados por esse sistema. Será apartir desses 16 eventos que todas as suas habilidades funcionarão.
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Iky 2012-05-01, 14:50

ArthusBehemoth escreveu:tenho algumas duvidas:

1- minhas spells estão sendo feitas em MUI eu preciso ou tenho alguma vantagem de usar este system?

2- aquela parte "coisas que voce deve saber" voce pode dar uma explicação mais detalhada?

1- a vantagem é de nao ter que criar inumeras triggers com a mesma condition e event, resultando em uma maior velocidade por redução de codigo
2- coisas para nao bugar o system

- Não registre mais que uma trigger por spell. //simples, vc nao usa mais de uma trigger para a inicialização de uma spell
- Tenha certeza que a trigger GUI SpellEvent foi executada apenas uma vez. //o systema tem que rodar uma vez, vc rodar duas vezes vai rodar as actions 2 vezes por spell
- Não toque nas custom scripts, se não tiver certeza do que está fazendo. //nao meche no systema em si,


lembre-se que esse systema é para os casos d

event> a unit starts a effect of a ability
condition> ability being cast equal Abilidade
action> ....
Iky
Iky

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue10 / 10010 / 100[Sistema] GUI SpellEvent Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 14:56

ArthusBehemoth escreveu:tenho algumas duvidas:

1- minhas spells estão sendo feitas em MUI eu preciso ou tenho alguma vantagem de usar este system?

A vantagem eu já disse, seu jogo gastará menos memoria toda vez que uma magia for usada. Isso melhora muito o desempenho do seu jogo.

ArthusBehemoth escreveu:2- aquela parte "coisas que voce deve saber" voce pode dar uma explicação mais detalhada?
- Não registre mais que uma trigger por spell.
Apenas não set aquelas variaveis duas vezes com a mesma habilidade.
- Tenha certeza que a trigger GUI SpellEvent foi executada apenas uma vez.
Tenha certeza que voce colocou apenas uma action dessa no seu mapa:
Código:
Trigger - Run GUI SpellEvent (ignoring conditions)
- Não toque nas custom scripts, se não tiver certeza do que está fazendo.
Apenas não mecha na trigger "GUI SpellEvent" que voce copiará do mapa de exemplo.

@edit
vlw iky por responder também.
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por DeathYou 2012-05-01, 15:08

Muito obrigado, Iky e tio Bills, acho que vou usar esse system no meu orpg pq ele é muito muito grande e ja tem diversos sistemas..
DeathYou
DeathYou

Número de Posts : 136
Data de inscrição : 23/05/2010
Reputação : 4 Pontos : 25859

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por ArthusBehemoth 2012-05-01, 15:19

Obrigado pelas respostas Iky e Bills... vou estar aplicando este system no meu mapa... + REP bills
ArthusBehemoth
ArthusBehemoth

Número de Posts : 1061
Data de inscrição : 30/03/2011
Reputação : 62 Pontos : 27994

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Tamires 2012-05-01, 17:44

Só uma dúvida,esse sistema é compatível ao de buff do Bills? outra vez botei sei lá que sistema e deu bug em tudo do BUFF .-.
Tamires
Tamires

Número de Posts : 487
Data de inscrição : 09/01/2012
Reputação : 27 Pontos : 25398

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 18:12

Olha, se você estiver falando desse meu sistema, sim são compatíveis.
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Tamires 2012-05-01, 18:20

É esse ai mesmo bills,deixe-me esclarecer o porque da pergunta

eu vi em algum lugar outro dia,um sistema que tirava as leaks de GUI e algumas de JASS,ai eu testei em umas duas GUI básicas,com leak de wait e point e funcionou,mas ai quando eu coloquei um JASS básico também funfou,ai eu fui colocando nos sistemas brutos,tipo o seu de buff e gerou tanto BUG que tive q voltar uma versão pq n tinha feito back-up do mapa.

Desculpe a "noobice" da pergunta
Tamires
Tamires

Número de Posts : 487
Data de inscrição : 09/01/2012
Reputação : 27 Pontos : 25398

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Bills 2012-05-01, 18:28

Tamires escreveu:É esse ai mesmo bills,deixe-me esclarecer o porque da pergunta

eu vi em algum lugar outro dia,um sistema que tirava as leaks de GUI e algumas de JASS,ai eu testei em umas duas GUI básicas,com leak de wait e point e funcionou,mas ai quando eu coloquei um JASS básico também funfou,ai eu fui colocando nos sistemas brutos,tipo o seu de buff e gerou tanto LEAK e BUG que tive q voltar 1 versão pq n tinha feito back-up do mapa.

Desculpe a "noobice" da pergunta

Tudo bem. Mas não aconselho o uso desses sistemas que removem leaks, pois alguns sistemas mantém handles por muito tempo, e esses sistemas de remover leaks podem acabar removendo algo que era para conservar.

O meu sistema só não é compatível com o AuraStruct do nestharus.
Bills
Bills

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

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue35 / 10035 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Tamires 2012-05-01, 21:27

Entendo,de qualquer forma valeu Wink
Tamires
Tamires

Número de Posts : 487
Data de inscrição : 09/01/2012
Reputação : 27 Pontos : 25398

Warning Necropost
[Sistema] GUI SpellEvent Left_bar_bleue0 / 1000 / 100[Sistema] GUI SpellEvent Right_bar_bleue


Ir para o topo Ir para baixo

[Sistema] GUI SpellEvent Empty Re: [Sistema] GUI SpellEvent

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos