Monstros que desviam de tiros...
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!
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!
Monstros que desviam de tiros...
E aí galera?
Agora, com as grandes possibilidades do DECORATE, estou tentando criar monstros que agem de acordo com determinadas situações no jogo. De algumas delas, tem o Zumbi que rouba armas, inventórios, tem um Imp que desvia de seus tiros, outro que se teletransporta, um Demon que pula atrás de você e um monstro que foge se estiver com vida muito baixa. Há muitas outras possibilidades, mas é tudo feito de forma simples. Vou tentar explicar a lógica aqui:
1) Monstros que fogem de seus tiros
Cada vez que uma arma atira (ou seja "Fire" state), coloque um A_GiveInventory("WeaponFiring"). Para que o monstro saiba quando você vai atirar, seu "See" state deve ficar assim:
See:
TROO A 0 A_JumpIfInTargetInventory("WeaponFiring",1,6)
TROO AA 2 A_Chase
TROO B 0 A_JumpIfInTargetInventory("WeaponFiring",1,3)
TROO BB 2 A_Chase
Loop
TROO 0 A_FaceTarget
TROO 0 A_SetAngle(90+angle)
TROO 0 A_Recoil(-12)
Loop
Dessa forma, o monstro estará sempre checando em que hora o jogador irá atirar. Assim que detectar uma ação de tiro, ele irá se virar de frente, girar em um ângulo de 90 graus e dar um salto (A_Recoil), voltando à perseguição em seguida (A_Chase). Utilizei isto em um Chaingunner no "Missile" state, por exemplo, para que ele desviasse de tiros mesmo atirando.
2) Fazendo um monstro cujo ataque não possa ser interrompido
Este é bem fácil. A lógica é não permitir que o monstro sinta dor ao atacar (não entrar no "Pain" state). Assim, podemos tentar isto:
Missile:
POSS E 0 A_ChangeFlag("NOPAIN",1)
POSS E 8 A_FaceTarget
POSS F 8 Bright A_PosAttack
Goto See
Assim, toda vez que o monstro atirar, completará a ação até o final (lembrando que o monstro terá sua vida diminuída ao ser atacado, mas não "sentirá dor".) O ataque só poderá ser interrompido quando ele morrer.
Aos poucos vou trazendo outras dicas.
Valeu galera!!!
Agora, com as grandes possibilidades do DECORATE, estou tentando criar monstros que agem de acordo com determinadas situações no jogo. De algumas delas, tem o Zumbi que rouba armas, inventórios, tem um Imp que desvia de seus tiros, outro que se teletransporta, um Demon que pula atrás de você e um monstro que foge se estiver com vida muito baixa. Há muitas outras possibilidades, mas é tudo feito de forma simples. Vou tentar explicar a lógica aqui:
1) Monstros que fogem de seus tiros
Cada vez que uma arma atira (ou seja "Fire" state), coloque um A_GiveInventory("WeaponFiring"). Para que o monstro saiba quando você vai atirar, seu "See" state deve ficar assim:
See:
TROO A 0 A_JumpIfInTargetInventory("WeaponFiring",1,6)
TROO AA 2 A_Chase
TROO B 0 A_JumpIfInTargetInventory("WeaponFiring",1,3)
TROO BB 2 A_Chase
Loop
TROO 0 A_FaceTarget
TROO 0 A_SetAngle(90+angle)
TROO 0 A_Recoil(-12)
Loop
Dessa forma, o monstro estará sempre checando em que hora o jogador irá atirar. Assim que detectar uma ação de tiro, ele irá se virar de frente, girar em um ângulo de 90 graus e dar um salto (A_Recoil), voltando à perseguição em seguida (A_Chase). Utilizei isto em um Chaingunner no "Missile" state, por exemplo, para que ele desviasse de tiros mesmo atirando.
2) Fazendo um monstro cujo ataque não possa ser interrompido
Este é bem fácil. A lógica é não permitir que o monstro sinta dor ao atacar (não entrar no "Pain" state). Assim, podemos tentar isto:
Missile:
POSS E 0 A_ChangeFlag("NOPAIN",1)
POSS E 8 A_FaceTarget
POSS F 8 Bright A_PosAttack
Goto See
Assim, toda vez que o monstro atirar, completará a ação até o final (lembrando que o monstro terá sua vida diminuída ao ser atacado, mas não "sentirá dor".) O ataque só poderá ser interrompido quando ele morrer.
Aos poucos vou trazendo outras dicas.
Valeu galera!!!
Editado pela última vez por Daniel em Qui Ago 06, 2009 9:08 am, em um total de 1 vez.
Re: Monstros que desviam de tiros...
3) Fazendo um monstro que só morre se explodir
Esta é parecida com os Zombes do Quake: só morrem com explosões ou tiros de míssil. Fiz isto no Stone Imp que virá este novo wad que pretendo fazer. Fazê-lo precisa de alterar seu Death State assim:
Death:
TROO I 8
TROO J 6 A_Scream
TROO KLM 6
TROO N 512
TROO N 0 HealThing(70)
TROO N 0 A_SetShootable
Goto Raise
Dessa forma, o monstro, após morto, irá ressuscitar após um tempo, com 70 de energia. Note que não tirei seu atribudo SOLID com A_NoBlocking, pois se ele ressuscitar e alguém estiver em cima dele, ao ligar A_SetSolid, o monstro irá ficar grudado com o outro que estiver em cima dele... infelizmente, não descobri outra maneira de alterar isto. A única maneira de matá-lo será destruindo totalmente seu corpo, ou seja, através do "XDeath" state (que pode permanecer inalterado). Outra dica: se o monstro for muito forte, fica difícil entrar no XDeath state, e para isto, utilize este comando no início de sua definição:
Health 500
GibHealth 20
Ou seja, se o monstro com um tiro que ultrapasse em 20 pontos sua energia, ele explodirá. Normalmente, o ZDoom calcula o GibHealth proporcionalmente à energia do monstro. Assim você altera isso.
4) Fazendo um monstro que rouba uma arma sua
Esta é bem fácil. Para isto, ele deve estar bem próximo de ti, assim, devemos usar o "Melee" state para fazer tal ação:
Melee:
POSS 0 A_JumpIfInventory("Pistol",1,1)
Goto Missile
POSS 0 A_TakeFromTarget("Pistol",1)
Goto See
Muito mole, não é? Quando o monstro estiver perto do jogador e ele tiver uma pistola, o monstro roubará a arma dele. Se não, ele irá atirar normalmente (Goto Missile).
Falou!
Esta é parecida com os Zombes do Quake: só morrem com explosões ou tiros de míssil. Fiz isto no Stone Imp que virá este novo wad que pretendo fazer. Fazê-lo precisa de alterar seu Death State assim:
Death:
TROO I 8
TROO J 6 A_Scream
TROO KLM 6
TROO N 512
TROO N 0 HealThing(70)
TROO N 0 A_SetShootable
Goto Raise
Dessa forma, o monstro, após morto, irá ressuscitar após um tempo, com 70 de energia. Note que não tirei seu atribudo SOLID com A_NoBlocking, pois se ele ressuscitar e alguém estiver em cima dele, ao ligar A_SetSolid, o monstro irá ficar grudado com o outro que estiver em cima dele... infelizmente, não descobri outra maneira de alterar isto. A única maneira de matá-lo será destruindo totalmente seu corpo, ou seja, através do "XDeath" state (que pode permanecer inalterado). Outra dica: se o monstro for muito forte, fica difícil entrar no XDeath state, e para isto, utilize este comando no início de sua definição:
Health 500
GibHealth 20
Ou seja, se o monstro com um tiro que ultrapasse em 20 pontos sua energia, ele explodirá. Normalmente, o ZDoom calcula o GibHealth proporcionalmente à energia do monstro. Assim você altera isso.
4) Fazendo um monstro que rouba uma arma sua
Esta é bem fácil. Para isto, ele deve estar bem próximo de ti, assim, devemos usar o "Melee" state para fazer tal ação:
Melee:
POSS 0 A_JumpIfInventory("Pistol",1,1)
Goto Missile
POSS 0 A_TakeFromTarget("Pistol",1)
Goto See
Muito mole, não é? Quando o monstro estiver perto do jogador e ele tiver uma pistola, o monstro roubará a arma dele. Se não, ele irá atirar normalmente (Goto Missile).
Falou!
Re: Monstros que desviam de tiros...
Muito interessante essas dicas.....
A unica que eu sabia fazer era o monstro que foge quando ta com low health D:
A unica que eu sabia fazer era o monstro que foge quando ta com low health D:
Esperando
And Current Projects
Re: Monstros que desviam de tiros...
Nem fazia idéia de que pudesse se fazer coisas assim!Boa Daniel!
Doom 64 Ouroboros
http://www.brdoom.com/_forum/viewtopic. ... 685#p95685
http://www.brdoom.com/_forum/viewtopic. ... 685#p95685
Re: Monstros que desviam de tiros...
Você se importa se eu escrever isso com mais detalhes e colocar na wiki?
E também seria legal fazer um monstro que rouba sua arma e usa ela contra você.
Mas com isso que você postou já da pra chegar nisso fácil, valeu.
E também seria legal fazer um monstro que rouba sua arma e usa ela contra você.

Mas com isso que você postou já da pra chegar nisso fácil, valeu.
Swim... Swim... Hungry...
Dopefish lives.
Dopefish lives.
Re: Monstros que desviam de tiros...
5) Um zumbi que dá tiros de pistola, rouba sua espingarda e usa ela contra você:
Melee:
POSS A 0 A_JumpIfInTargetInventory("Shotgun",1,1)
Goto Missile
POSS A 0 A_TakeFromTarget("Shotgun",1)
Goto See
Missile:
POSS E 0 A_JumpIfInventory("Shotgun",1,4)
POSS E 8 A_FaceTarget
POSS F 8 Bright A_PosAttack
POSS E 8
Goto See
POSS E 10 A_FaceTarget
POSS F 10 Bright A_SposAttack
POSS E 10
Goto See
Pronto! Se ele roubar a Shotgun de você, A_JumpIfInventory irá checar, no Missile State, se o monstro a roubou. Se sim, executará a animação de tiro de shotgun. Pronto!
Melee:
POSS A 0 A_JumpIfInTargetInventory("Shotgun",1,1)
Goto Missile
POSS A 0 A_TakeFromTarget("Shotgun",1)
Goto See
Missile:
POSS E 0 A_JumpIfInventory("Shotgun",1,4)
POSS E 8 A_FaceTarget
POSS F 8 Bright A_PosAttack
POSS E 8
Goto See
POSS E 10 A_FaceTarget
POSS F 10 Bright A_SposAttack
POSS E 10
Goto See
Pronto! Se ele roubar a Shotgun de você, A_JumpIfInventory irá checar, no Missile State, se o monstro a roubou. Se sim, executará a animação de tiro de shotgun. Pronto!
- Logan MTM
- Mensagens: 2895
- Registrado em: Dom Dez 11, 2005 8:12 pm
- 19
- Localização: Rio de Janeiro - Brasil
- Contato:
Re: Monstros que desviam de tiros...
Vou bola um Zumbi que sente e joga baralho com vc! 8D
Re: Monstros que desviam de tiros...
Tem que pedir blefe no truco.Logan MTM escreveu:Vou bola um Zumbi que sente e joga baralho com vc! 8D
Swim... Swim... Hungry...
Dopefish lives.
Dopefish lives.
Re: Monstros que desviam de tiros...
E assim meu proximo Mod será: Ultimate Yugioh Doom : Shores of CardsLogan MTM escreveu:Vou bola um Zumbi que sente e joga baralho com vc! 8D
EU INVOCO MEU CYBERDEMON BRANCO DE OLHOS AZUIS
Re: Monstros que desviam de tiros...
os tutorias ficaram ate legais, mas essas paradinhas sao bem velhas. Tenho uma aki pra tu.
1)
um monstro q quando estiver na metade da vida ele começa a andar mais rapido e atacar mais rapido tb.
quando a vida dele estiver menor q 40, ele começa a correr.
2) vc tb pode pular para varios estados usando uma unica ação
ex:
dai o ator tem aproximadamente 50% de chance para pular ou para o estado see, ou para o pain, ou pro missile.
em breve mais.
1)
um monstro q quando estiver na metade da vida ele começa a andar mais rapido e atacar mais rapido tb.
Código: Selecionar todos
see:
TROO A 0 A_JumpIfHealthLower(40, "correndo")
TROO AABBCCDD 2 A_Chase
Loop
correndo:
TROO AAABBBCCCDDD 1 A_Chase("melee", "missile", CHF_NIGHTMAREFAST)
Loop
2) vc tb pode pular para varios estados usando uma unica ação
ex:
Código: Selecionar todos
A_Jump(128, "see", "pain", "missile")
actor impnegao : doomimp
{
states {
See:
TROO A 0 A_Jump(128, "pain", "missile")
TROO AABBCCDD 2 A_Chase
Loop
e so um exemplo msm. Isso e util para fazer varios atques.
}
em breve mais.
