Decorate : Monstro novo [+tutorial]

Mapas, Editores e tudo mais relacionado a Edição de DooM você encontra aqui.
Regras do fórum
LEIA COM ATENÇÃO
Antes de postar alguma dúvida utilize a função de pesquisar do fórum, pois a sua dúvida talvez já tenha sido respondida!
Avatar do usuário
Pedro Vc
Mensagens: 3260
Registrado em: Ter Jul 15, 2008 4:40 pm
Answers: 0
15

Decorate : Monstro novo [+tutorial]

Mensagem por Pedro Vc »

Bem, prometi um tutorial pra DECORATE e aí está ele. Antes de pular para os monstros tente aprender como fazer uma arma que é mais simples. Se você já saca os conceitos básicos, Let's Start bitch!
actor DoomImp 3001
{
spawnid 5
obituary "%o was burned by an imp."
hitobituary "%o was slashed by an imp."
health 60
radius 20
height 56
mass 100
speed 8
painchance 200
seesound "imp/sight"
painsound "imp/pain"
deathsound "imp/death"
activesound "imp/active"
MONSTER
+FLOORCLIP
states
{
Spawn:
TROO AB 10 A_Look
loop
See:
TROO AABBCCDD 3 A_Chase
loop
Melee:
Missile:
TROO EF 8 A_FaceTarget
TROO G 6 A_TroopAttack // See DoomImpBall
goto See
Pain:
TROO H 2
TROO H 2 A_Pain
goto See
Death:
TROO I 8
TROO J 8 A_Scream
TROO K 6
TROO L 6 A_NoBlocking
TROO M -1
stop
XDeath:
TROO N 5
TROO O 5 A_XScream
TROO P 5
TROO Q 5 A_NoBlocking
TROO RST 5
TROO U -1
stop
Raise:
TROO ML 8
TROO KJI 6
goto See
}
}

Por partes como sempre.
actor DoomImp 3001
{
spawnid 5
obituary "%o was burned by an imp."
hitobituary "%o was slashed by an imp."
health 60
radius 20
height 56
mass 100
speed 8
painchance 200
seesound "imp/sight"
painsound "imp/pain"
deathsound "imp/death"
activesound "imp/active"
MONSTER
+FLOORCLIP
Actor, como você sabe é o que define a thing. Escolhi o imp como base por que ele é o monstro mais simples e versátil do DooM.

SpawnID é um valor que define o número da thing a ser usada em alguns comandos de ACS, como thing_spawn por exemplo, não é muito útil e seu valor deve estar entre 0 e 255.
Obituary e hitobituary é a mensagem que aparece quando você é morto pelo projétil ou por um melee, respectivamente. Repare que "%o" é o nome do Player em questão, no jogo isso fica assim "sexygay123 was burned by an imp."

Health, Radius, height e mass são respectivamente : Saúde (obviamente, a saúde do bicho), sua largura (do monstro, não de você), sua altura (idem) e sua massa (algo como o "peso" do monstro, compare a massa de um zombieman com a de um cyberdemon que você vai entender).

Speed e Painchance são a velocidade do monstro e sua chance de dor.

seesound "imp/sight"
painsound "imp/pain"
deathsound "imp/death"
activesound "imp/active"


São os seus sons predefinidos no SNDINFO. Não vou detalhar isso.

MONSTER é VITALMENTE importante. Isso define que o actor É um monstro.

+FLOORCLIP é uma flag que define que o monstro tem contato com o chão. Na verdade eu nem sei pra que isso serve :p
states
{
Spawn:
TROO AB 10 A_Look
loop
See:
TROO AABBCCDD 3 A_Chase
loop
Melee:
Missile:
TROO EF 8 A_FaceTarget
TROO G 6 A_TroopAttack // See DoomImpBall
goto See
Agora, os queridos states. Não esqueça das chaves e a parafernália toda. Estou contando que você é alguém que já tem um conhecimento básico de DECORATE.

Spawn é o state do monstro parado e pronto pra atacar o jogador. A_Look define que o monstro acorde quando ver um inimigo, ouvir um tiro ou ser ferido.
Ponha um Loop, pra ação se reptir pra sempre.

See é o estado do monstro quando nos vê. A_Chase é um comando viltal, pois ordena ao monstro que persiga o Player.
Não esqueça do bendito Loop.

Melee E missile juntos significam que eles tem a mesma frame. Melee é o ataque de perto (que faz aquele característico arranhão do imp) e Missile é o ataque a longa distância (DICA: você pode pôr a flag MISSILEEVENMORE pra crar monstros mais agressivos que atacam mesmo a grandes deistâncias). A_FaceTarget é um Code Pointer que faz com que o monstro encare o jogador antes de atacar. A_TrropAttack é o ataque do Imp. Goto See ordena que depois do ataque o actor volte pro estado See.
Pain:
TROO H 2
TROO H 2 A_Pain
goto See
Death:
TROO I 8
TROO J 8 A_Scream
TROO K 6
TROO L 6 A_NoBlocking
TROO M -1
stop
XDeath:
TROO N 5
TROO O 5 A_XScream
TROO P 5
TROO Q 5 A_NoBlocking
TROO RST 5
TROO U -1
stop
Raise:
TROO ML 8
TROO KJI 6
goto See
}
}
Pain é o estado de dor do actor, depende diretamento do painchance. A_Pain faz o som de pain do monstro.
Death, como o nome indica é a morte do monstro. A_Scream reproduz o som de morte, A_Noblocking faz com que o monstro não tenha mais bloqueio e você possa atravessá-lo. Ponha im stop no final.
Xdeath é o state de splatter death, quando o inimigo explode em pedaços. É a mesma coisa do Death, só que reproduz o som da morte splatter (A_XScream).
Raise é o state do monstro quando é ressucitado pelo Arch-vile.


É, só espero que tenham gostado e aprendido algo :wink:


Créditos : Tutorial escrito por Pedro Vc, com algumas coisas tiradas da Zdoom Wiki e do tutorial de JackTheRipper.
Editado pela última vez por Pedro Vc em Sáb Abr 11, 2009 5:32 pm, em um total de 1 vez.
Avatar do usuário
Logan MTM
Mensagens: 2895
Registrado em: Dom Dez 11, 2005 8:12 pm
Answers: 0
18
Localização: Rio de Janeiro - Brasil
Contato:

Mensagem por Logan MTM »

Lindo pedro! @_@
Imp Hunter

Mensagem por Imp Hunter »

Vo só acrescentar algumas coisas:

Painchance: é a chance do monstro ativar o state Pain, por exemplo:
-Um monstro X tem 255 de chance, ou seja ele SEMPRE vai ir para o state pain quando levar dano
-O monstro ZIPSOLON tem o painchance 100, ou seja ele tem uma chance de 100/255 de ativar o Pain
-O monstro Zé(man) tem o painchance 0, ou seja, ele nunca vai ir pro state pain(Nesse caso nem coloque o state), mas isso não significa que ele nunca toma dano

-------------------------------------

Heigth, Radius e Mass são essenciais em um monstro, alem disso tente faze-los proporcionais ao tamanho da sprite (medida em pixels)

--------------------------------------

Para criar um monstro que ressucita outros como o Archvile, existe o status Heal

Exemplo:

Código: Selecionar todos

  Heal:
    VILE "[\]" 10 BRIGHT
    Goto See
Note que não há nenhuma função que indique porque o Heal é ativado, para isso coloqe A_Vilechase ao invez de A_Chase no state See
Avatar do usuário
Pedro Vc
Mensagens: 3260
Registrado em: Ter Jul 15, 2008 4:40 pm
Answers: 0
15

Mensagem por Pedro Vc »

O.O
Cadê o post do Rocks?
Avatar do usuário
Mathey Bu
Mensagens: 502
Registrado em: Seg Jul 21, 2008 11:18 am
Answers: 0
15
Localização: Decorate

Mensagem por Mathey Bu »

Imp Hunter escreveu:

Código: Selecionar todos

  Heal:
    VILE "[\]" 10 BRIGHT
    Goto See
teria como botar um monstro que foi ressucitado somente com 100 de vida?
Imp Hunter

Mensagem por Imp Hunter »

master matheus escreveu:
Imp Hunter escreveu:

Código: Selecionar todos

  Heal:
    VILE "[\]" 10 BRIGHT
    Goto See
teria como botar um monstro que foi ressucitado somente com 100 de vida?
Não, ele vai sempre ressucitar com sua vida completa
Avatar do usuário
Mathey Bu
Mensagens: 502
Registrado em: Seg Jul 21, 2008 11:18 am
Answers: 0
15
Localização: Decorate

Mensagem por Mathey Bu »

Imp Hunter escreveu:
master matheus escreveu:
Imp Hunter escreveu:

Código: Selecionar todos

  Heal:
    VILE "[\]" 10 BRIGHT
    Goto See
teria como botar um monstro que foi ressucitado somente com 100 de vida?
Não, ele vai sempre ressucitar com sua vida completa
lol q vacilo :(
Avatar do usuário
Fabiolinks
Mensagens: 1067
Registrado em: Sáb Set 13, 2008 12:46 am
Answers: 0
15
Localização: Olha pra trás
Contato:

Mensagem por Fabiolinks »

Bom tutorial, mas
Não sei fazer uma parede no Doom.
Meu negócio é mandar bala
Avatar do usuário
Pedro Vc
Mensagens: 3260
Registrado em: Ter Jul 15, 2008 4:40 pm
Answers: 0
15

Mensagem por Pedro Vc »

Fabiolinks escreveu:Bom tutorial, mas
Não sei fazer uma parede no Doom.
Meu negócio é mandar bala
'¬¬
Era melhor só dizer Bom Tutorial
Avatar do usuário
Lord DooM1.666
Mensagens: 1169
Registrado em: Qui Jan 10, 2008 9:19 pm
Answers: 0
16
Localização: Pernambuco - Brasil

Mensagem por Lord DooM1.666 »

Bom tuto, isso com certeza é inegável!
Bucha MTM escreveu: Lindo pedro! @_@
Eu nunca vi a foto do pedro, então não sei se posso chama-lo de lindo! :mrgreen:


@Pedro

Vossa senhoria poderia Postar na wiki? Tipo, nos precisamos de tutorial de decorate e isso foi implorado por mim há uns dias atrás (sem sucesso! ¬¬)

Se possivel, passem esse tuto pra wiki, onde é mais aconselhável! Grato! :wink: