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!



[Sistema] GUI SpellEvent

Ir em baixo

[Sistema] GUI SpellEvent

Mensagem por Bills em 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:
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)


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Tamires em 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~♥
avatar
Tamires

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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. =)


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Iky em 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?


avatar
Iky

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

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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).


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Iky em 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)


avatar
Iky

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

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

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

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


Meu Blog:
::::::::::: Em Construção :::::::::::
Wonderfull Editor

Meus Tutoriais:
::::::::::: Em Construção :::::::::::
Spells em MUI
Floating Text Damage System
Dungeon System
avatar
DeathYou

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Iky em 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)


avatar
Iky

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

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por ArthusBehemoth em 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?



Galera acessem o BLOG do meu mapa
http://www.wc3heroesofmidgard.blogspot.com/
VERSÃO FIX COM MUITAS NOVIDADES, + DE 25 CLASSES NOVAS, NOVOS ITEMS, NOVO TERRAIN NÃO PERCAM... EM BREVE
avatar
ArthusBehemoth

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Iky em 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> ....


avatar
Iky

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

Warning Necropost
10 / 10010 / 100


http://icaro.glauco

Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por DeathYou em 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..


Meu Blog:
::::::::::: Em Construção :::::::::::
Wonderfull Editor

Meus Tutoriais:
::::::::::: Em Construção :::::::::::
Spells em MUI
Floating Text Damage System
Dungeon System
avatar
DeathYou

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

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

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



Galera acessem o BLOG do meu mapa
http://www.wc3heroesofmidgard.blogspot.com/
VERSÃO FIX COM MUITAS NOVIDADES, + DE 25 CLASSES NOVAS, NOVOS ITEMS, NOVO TERRAIN NÃO PERCAM... EM BREVE
avatar
ArthusBehemoth

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Tamires em 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~♥
avatar
Tamires

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

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

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


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Tamires em 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~♥
avatar
Tamires

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Bills em 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.


Recomendo
Por que um jogo é bom? | Aprenda MUI | Mostre-se para nós!

avatar
Bills

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

Warning Necropost
35 / 10035 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

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

Entendo,de qualquer forma valeu Wink


Tamires~♥
avatar
Tamires

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

Warning Necropost
0 / 1000 / 100


Voltar ao Topo Ir em baixo

Re: [Sistema] GUI SpellEvent

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum