sexta-feira, 3 de junho de 2011

Aprenda a Fazer Recipes

O que você vai precisar:
  • 3 itens (no minimo)
  • Noção básica sobre Triggers (para fazer uma trigger simples)
  • Criatividade para criar seus próprios recipes (Opcional)
Vamos iniciar pelo início:
Um recipe, no contexto popular, é o que podemos chamar de fusão de itens: "Quando um herói pegar tais itens, eles se juntam e formam apenas um (mais poderoso geralmente)", por exemplo. Você com certeza já viu isso em algum mapa, aposto que foi no DotA.
Pois bem, se você está lendo esse tutorial, tem uma grande chance de você está querendo aprender a fazer isso. Você irá se surpreender como é facil.

Vamos fazer nossos itens:
Vamos começar fazendo apenas um teste, uma demonstração. Depois de aprender a fazer um recipe, você estará pronto para fazer seus recipes como você quiser.
  • Crie 3 novos itens.
  • Nomeie um de Item 1, outro de Item 2 e o ultimo de Item 3.

Pronto, já temos nossos itens. Vamos trabalhar agora com a trigger, que irá fazer o Item 1 e Item 2 se jutarem e formar o Item 3.

Evento:
Precisamos de um evento que verifique quando uma unidade pegar um item. Usaremos esse:

Events
    Unit - A unit Acquires an item

Assim, esse evento ativa a trigger quando uma unidade (qualquer uma) pegar um item.

Condições:
Para que o trigger não ative toda hora que uma unidade qualquer pegue um item, colocaremos a seguintes condições:

Conditions
    Or - Any (Conditions) are true
        Conditions
            (Item-type of (Item being manipulated)) Equal to Item 1
            (Item-type of (Item being manipulated)) Equal to Item 2

Essas condições irão verificar se o item que foi adiquirido é o Item 1 ou Item 2. Se não for um desses dois, não irá acontecer nada.

Ações:
É aqui que a mágica acontece. Iremos agora fazer com que a trigger verifique se a unidade tem os itens certos. Caso ela tenha, esses itens irão desaparece (fundir) e ela ganhará o Item 3 (a fusão dos Item 1 e Item 2). Essas são as ações:


Actions
    -------- Primeiro confira se a unidade tem os itens que precisa --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        If - Conditions
            ((Triggering unit) has an item of type Item 1) Equal to True
            ((Triggering unit) has an item of type Item 2) Equal to True
        Then - Actions
            -------- Se ela tiver, remova os itens de requerimento --------
            Item - Remove (Item carried by (Triggering unit) of type Item 1)
            Item - Remove (Item carried by (Triggering unit) of type Item 2)
            -------- Adicione o item novo --------
            Hero - Create Item 3 and give it to (Triggering unit)
        Else - Actions
Efeitos:
Bem, a sua trigger já está completa. Mas caso você queira que algum efeito aconteça quando ela juntar os itens, é só por essas actions no final da trigger:

-------- Cria um efeito na unidade --------
Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Items\AIam\AIamTarget.mdl
-------- Destrua o efeito, para não causar lag --------
Special Effect - Destroy (Last created special effect)

O efeito que usei foi o "Abilities\Item Agility Gain". Depois dele coloquei uma ação que destroi um efeito especial depois que ele termina, não ligue para ela caso você não tenha entendido. Futuramente você entenderá.

Resultado Final:
Nossa trigger finalizada ficou assim:

Trigger Pronta
    Events
        Unit - A unit Acquires an item
    Conditions
        Or - Any (Conditions) are true
            Conditions
                (Item-type of (Item being manipulated)) Equal to Item 1
                (Item-type of (Item being manipulated)) Equal to Item 2
    Actions
        -------- Primeiro confira se a unidade tem os itens que precisa --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) has an item of type Item 1) Equal to True
                ((Triggering unit) has an item of type Item 2) Equal to True
            Then - Actions
                -------- Se ela tiver, remova os itens de requerimento --------
                Item - Remove (Item carried by (Triggering unit) of type Item 1)
                Item - Remove (Item carried by (Triggering unit) of type Item 2)
                -------- Adicione o item novo --------
                Hero - Create Item 3 and give it to (Triggering unit)
                -------- Cria um efeito especial na unidade (isso é opcional) --------
                Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Items\AIam\AIamTarget.mdl
                Special Effect - Destroy (Last created special effect)
            Else - Actions
Espero do fundo do coração que você tenha entendido tudinho. Caso não tenha encontrado alguma ação ou condição, poste que eu te ajudo.



Obrigado por ler.

4 comentários:

  1. Cara Muito bom acho que isso responde muita das minhas perguntas

    ResponderExcluir
  2. Obrigado por ler o blog, colega.

    ResponderExcluir
  3. Olha sinceramente me ajudou bastante esse seu tópico gostei mesmo, andei fazendo pesquisas em outros sites tinha códigos diferentes dai fui juntando aqui ali e conseguir fazer outros, mas no caso de fundir automaticamente sem récipe esse foi essencial mesmo fico muito feliz por aprender isso e por existir alguém que sabe e quer ensinar a quem não tem conhecimento total, me bate um pouco no inglês procurando os comandos lá no trigger mas depois de muita procura e insistência conseguir. Queria saber se tem a possibilidade de tirar outras duvidas minha a respeito dos comandos da trigger porque quero criar mapas bem melhor que o DL Hero Siege - Evil Spawn 3.6, há sim aprendi a fazer fusao com itens iguais também fiz com 6 itens iguais. Se possível me adiciona no msn edysuporteagames@hotmail.com

    ResponderExcluir