Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Reisal

Flamer Zombie on Realm667 - Use weapon more?

Recommended Posts

I am attempting to figure out how to make the flamethrower zombie on Realm667 use his weapon more often but I see a A_JumpIfCloser in his Missile state but don't really know to make it bigger, smaller or remove it.. (Yes, I read the stub on ZDoom wiki)

I see him walking around me up close but not burning me like he should but he sometimes uses it from a distance.

    Missile:
        FLMZ E 0 A_JumpIfCloser(384, "See")
        FLMZ E 10 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        Goto See
Also, what would be the best course of action so he does but not torching monsters between himself and me?

Share this post


Link to post

Make the flamethrower attack his Melee state and set MeleeThreshold to something appropriate.

Share this post


Link to post
Mr. Chris said:

I am attempting to figure out how to make the flamethrower zombie on Realm667 use his weapon more often but I see a A_JumpIfCloser in his Missile state but don't really know to make it bigger, smaller or remove it.. (Yes, I read the stub on ZDoom wiki)

I see him walking around me up close but not burning me like he should but he sometimes uses it from a distance.

That's because he jumps to his see state when he is closer than 384 map units from you. You can reduce the A_JumpIfCloser distance.

You can also try giving the monster the AVOIDMELEE flag so it won't try to get up close and personal as monster AI is normally wont to do.

Share this post


Link to post

I could just comment out A_JumpIfCloser and add in MeleeThreshold 192 or 256 and change the Missile state to Melee, that should work.

Share this post


Link to post

Yeah, Ghastly_Dragon added that line in. I originally just had him attack from anywhere, although this made him a bit kamikaze. It seems to have the opposite from the intended effect - I think the idea was to have him only attack when you were closer as the flamer has limited range.

If you can get him behaving the way you want, let me know. Might be worth an update.

Share this post


Link to post

I didn't see much change doing the above so I reverted back to the original but changing the A_JumpIfCloser to 256 and adding the +MISSILEMORE flag to see if I get desirable results.

I will see if I come across him in any generated maps this time..but isn't there a ZDoom flag that tells the monster to not engage with a projectile unless X units from his target?

Share this post


Link to post

Try this -

    MeleeRange 384
    DamageFactor "Fire", 0.1 // nearly fireproof
    States
    {
    Spawn:
        FLMZ AB 10 A_Look
        Loop
    See:
        FLMZ A 4 A_Chase("", "")
        FLMZ ABBCCDD 4 A_Chase
        Loop
    Melee:
        FLMZ E 5 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        FLMZ E 0 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("FTFire",32,0,random(-4,4),0)
        Goto See
I added the DamageFactor after noticing the zombie had a tendency to perish in his own flames when chasing me.

Share this post


Link to post

All right, that modification by GG works well, just had to knock the fire damage factor off because I can't kill him with a rocket in one shot.

Share this post


Link to post

Sorry for bumping this but I am trying to figure out how to keep the dropped flames from harming the shooter, yet the DONTHURTSHOOTER flag is on the ZombieFire and DropFire actors below..

ACTOR ZombieFire
{
   Radius 2
   Height 4
   Speed 16
   Damage 1
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.67
   Scale 0.67
   SeeSound "weapons/flamer"
   DeathSound "weapons/scorch"
   DONTHURTSHOOTER
   +THRUGHOST
   States
   {
   Spawn:
      NULL A 2 Bright
      FRFX ABCD 2 Bright A_Explode(5,8)
      FRFX D 0 Bright A_Lowgravity
      FRFX EFG 2 Bright A_Explode(5,16)
      FRFX HIJ 2 Bright A_Explode(5,32)
      FRFX KLM 2 Bright A_Explode(5,64)
      FRFX NO 2 Bright
      stop
   Death:
      FRFX HIJ 2 Bright A_Explode(5,32)
      FRFX J 0 A_CustomMissile ("DropFire",0,0,0,4)
      FRFX KLM 2 Bright A_Explode(5,64)
      FRFX NO 2 Bright
      stop
   }
}

ACTOR DropFire
{
   Radius 8
   Height 40
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.90
   DONTHURTSHOOTER
   -NOGRAVITY
   +LOWGRAVITY
   +NOEXPLODEFLOOR
   +NODAMAGETHRUST
   +THRUGHOST
   States
   {
   Spawn:
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,16)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16)
      FLME A 0 A_Jump(192,1)
      loop
      NULL A 0
      goto death
   Death:
      NULL A 1 Bright
      stop
   }
It still hurts and ends up killing him if he walks over it but I still want to be able to kill him via rocket since making him flame resistant or proof will make the RL/GL literally useless on him. Any thoughts on how to keep him from killing himself on firewalking yet able to kill him with explosive weapons?

Share this post


Link to post

Try this -

ACTOR ZombieFire
{
   Radius 2
   Height 4
   Speed 16
   Damage 1
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.67
   Scale 0.67
   SeeSound "weapons/flamer"
   DeathSound "weapons/scorch"
   +THRUGHOST
   States
   {
   Spawn:
      NULL A 2 Bright
      FRFX ABCD 2 Bright A_Explode(5,8,0)
      FRFX D 0 Bright A_Lowgravity
      FRFX EFG 2 Bright A_Explode(5,16,0)
      FRFX HIJ 2 Bright A_Explode(5,32,0)
      FRFX KLM 2 Bright A_Explode(5,64,0)
      FRFX NO 2 Bright
      stop
   Death:
      FRFX HIJ 2 Bright A_Explode(5,32,0)
      FRFX J 0 A_CustomMissile ("DropFire",0,0,0,4)
      FRFX KLM 2 Bright A_Explode(5,64,0)
      FRFX NO 2 Bright
      stop
   }
}

ACTOR DropFire
{
   Radius 8
   Height 40
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.90
   -NOGRAVITY
   +LOWGRAVITY
   +NOEXPLODEFLOOR
   +NODAMAGETHRUST
   +THRUGHOST
   States
   {
   Spawn:
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,16,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 0 A_Jump(192,1)
      loop
      NULL A 0
      goto death
   Death:
      NULL A 1 Bright
      stop
   }
}
The DONTHURTSHOOTER property has been deprecated and replaced with a hurtshooter flag in A_Explode which appears to do the trick when set to false.

Share this post


Link to post

@GreyGhost: I just tried your code and it works a treat. I'll be submitting this as an update on R667. Cheers.

Using the modified projectile actors, I've changed the Missile attack to Melee with a MeleeRange of 384. This means that while he won't toast himself, he also won't attack you until you're close enough for him to hit you. The code now reads like this:

ACTOR FlamerZombie 31497
{

    Health 50
    Radius 20
    Height 56
    Speed 8
    PainChance 100
    MONSTER 
    +FLOORCLIP
    SeeSound "grunt/sight"
    AttackSound "weapons/flamer"
    PainSound "grunt/pain"
    DeathSound "grunt/death"
    ActiveSound "grunt/active"
    Obituary "%o got fried by a flamer zombie."
    MeleeRange 384
    States
    {
    Spawn:
        FLMZ AB 10 A_Look
        Loop
    See:
        FLMZ A 4 A_Chase("", "")
        FLMZ ABBCCDD 4 A_Chase
        Loop
    Melee:
        FLMZ E 10 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
        FLMZ E 10 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
        FLMZ E 10 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
        FLMZ E 10 A_FaceTarget
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
      	FLMZ F 1 A_CustomMissile("ZombieFire",32,0,random(-4,4),0)
        Goto See
    Pain:
        FLMZ G 3
        FLMZ G 3 A_Pain
        Goto See
    Death:
        FLMZ H 5
        FLMZ I 5 A_Scream
        FLMZ J 5 A_Fall
        FLMZ K 5
        FLMZ L -1
        Stop
    XDeath:
        FLMZ O 5
        FLMZ P 5 A_XScream
        FLMZ Q 5 A_Fall
        FLMZ RSTU 5
        FLMZ V -1
        Stop
    Raise:
        FLMZ KJIH 5
        Goto See
    }
}

ACTOR ZombieFire
{
   Radius 2
   Height 4
   Speed 16
   Damage 1
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.67
   Scale 0.67
   SeeSound "weapons/flamer"
   DeathSound "weapons/scorch"
   +THRUGHOST
   States
   {
   Spawn:
      NULL A 2 Bright
      FRFX ABCD 2 Bright A_Explode(5,8,0)
      FRFX D 0 Bright A_Lowgravity
      FRFX EFG 2 Bright A_Explode(5,16,0)
      FRFX HIJ 2 Bright A_Explode(5,32,0)
      FRFX KLM 2 Bright A_Explode(5,64,0)
      FRFX NO 2 Bright
      stop
   Death:
      FRFX HIJ 2 Bright A_Explode(5,32,0)
      FRFX J 0 A_CustomMissile ("ZombieDropFire",0,0,0,4)
      FRFX KLM 2 Bright A_Explode(5,64,0)
      FRFX NO 2 Bright
      stop
   }
}

ACTOR ZombieDropFire
{
   Radius 8
   Height 40
   PROJECTILE
   RENDERSTYLE ADD
   DamageType Fire
   ALPHA 0.90
   -NOGRAVITY
   +LOWGRAVITY
   +NOEXPLODEFLOOR
   +NODAMAGETHRUST
   +THRUGHOST
   States
   {
   Spawn:
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,16,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 1 Bright A_Playsound("weapons/onfire")
      FLME A 1 Bright A_Explode(5,32,0)
      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)
      FLME A 0 A_Jump(192,1)
      loop
      NULL A 0
      goto death
   Death:
      NULL A 1 Bright
      stop
   }
}
I've renamed the DropFire to ZombieDropFire to avoid any conflict with the actual Flamer weapon, so if you're using it you can still toast yourself ;)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×