Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
The Nutcracker

Monsters with more than 1 projectile attacks

Recommended Posts

Recently, I started making a decorate lump that included a monster with more than 1 attack. I did not know how to do this, so I looked at the decorate lump in lost soulsphere: gold edition, and, as far as I could see it, all you needed to do was add Goto See after each attack. I tried that, and it never used any attack aside from the first. I tried making it one big attack, but that did not seem to work right. I left it at that point, and looked on the internet to find info, but all I could find was house decorating junk. Could anyone help me?
If it helps, this is how the decorate part about that monster looks so far:



ACTOR Cyberbomber 20000
{
speed 32
radius 40
height 112
health 5000
Mass 200
PainChance 0
MONSTER
+FLOORCLIP
missiletype Rocket
AttackSound " "
DeathSound "player/male/death1"
obituary"%o was deconstructed a cyberbomber"
MeleeDamage 100
States
{
Spawn:
CYBR AB 10 A_Look
loop
See:
CYBR A 2 A_FastChase
CYBR B 2 A_FastChase
CYBR C 2 A_FastChase
CYBR D 2 A_FastChase
Loop
Missile:
//the lengthy attacking phase. OK, it's not THAT long, but it is longer than normal attacks.
CYBR E 20 A_FaceTarget
CYBR E 2 A_FaceTarget
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0) // big bad start rocket blast state
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 20)
CYBR F 2 A_CustomMissile ("Rocket", 32, 0, -20)
CYBR F 2 A_FaceTarget
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 5)
CYBR F 2 A_CustomMissile ("Rocket", 32, 0, -5)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR E 2 //circular rocket launch state
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 20)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 40)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 60)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 80)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 100)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 120)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 140)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 160)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 180)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 200)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 220)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 240)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 260)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 280)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 300)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 320)
CYBR E 2
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 340)
CYBR E 0 A_FaceTarget
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)//extensive rockets state
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 1 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_MonsterRail //superrail and super rocket states
CYBR F 0 A_MonsterRail
CYBR F 0 A_MonsterRail
CYBR F 0 A_MonsterRail
CYBR F 0 A_MonsterRail
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, 0)//Tri-BFG State
CYBR F 0 A_CustomMissile ("BFGBall", 32, 0, -20)
CYBR F 0 A_CustomMissile ("BFGBall", 32, 0, 20)
CYBR F 0 A_CustomMissile ("BFGBall", 32, 0, 0) //Mancubus Fire State
CYBR F 2 A_CustomMissile ("FatShot", 32, 0, 0)
CYBR E 2
CYBR F 0 A_CustomMissile ("FatShot", 32, 0, 0)
CYBR F 0 A_CustomMissile ("FatShot", 32, 0, 20)
CYBR F 0 A_CustomMissile ("FatShot", 32, 0, -20)//Random Plasma launch state
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, 0)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, -20)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, 35)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, -80)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, 25)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, -73)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, 35)
CYBR E 4
CYBR F 1 A_CustomMissile ("PlasmaBall", 32, 0, -80)
CYBR E 10
CYBR F 1 A_SkelMissile//revanant fireball state
CYBR E 5
CYBR F 1 A_SkelMissile
CYBR E 5
CYBR F 1 A_SkelMissile
CYBR E 5
CYBR F 1 A_SkelMissile
CYBR E 5
CYBR F 1 A_SkelMissile
CYBR E 20
CYBR F 1 A_CPosAttack//Chaingun attack state
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR E 2
CYBR F 1 A_CPosAttack
CYBR F 1 A_VileAttack//Player Jumping Attacks state
CYBR E 20
CYBR F 1 A_VileAttack
CYBR E 20
CYBR F 1 A_VileAttack
CYBR E 20
CYBR F 1 A_BrainSpit//Spawning
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR F 1 A_BrainSpit
CYBR E 50 //And it FINALLY ends with a quick reloading for the cyb
Goto See
Melee:
CYBR E 8 A_FaceTarget
CYBR E 8 A_FaceTarget
CYBR E 8 A_FaceTarget
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_CustomMissile ("Rocket", 32, 0, -10)
CYBR F 0 A_Explode
CYBR E 8
Goto See
Death:
CYBR H 5
CYBR I 5 A_Scream
CYBR J 5 A_Fall
CYBR K 5
CYBR L 5
CYBR M 5
CYBR N 5
CYBR O 5
CYBR P -1
Stop
}
}

Share this post


Link to post

First things first, I'm not good at ACS / Decorate, not yet. But you gotta let the cyberbomber evaluate the situation, depending on it's AI pick 1 of it's attacks and fullfill it. Do you get my point?

I can do an example in pseudocode similar to Delphi for you:

dist := getdistance
if dist > 1000 then
 begin
  atk := random(5); // assuming you have 5 attacks
  case atk of
   0: chaingunattack;
   1: plasmaattack;
   2: rocketattack;
   3: bfgattac
   4: revenantattack
  else
   donothing;
  end;
 end
 else
  speed := 500;
  translunicent := true;
  face target(player);
 end;

Share this post


Link to post

"%o was deconstructed a cyberbomber"

What is it, a cybernetic Jacques Derrida?

Share this post


Link to post

I have no idea what this thing is, but looking at the attack sure makes it look lethal to say the least.

Share this post


Link to post

I see I didn't put in an A_Jump state in. I'll try to use it, but with the few test wads I used to test it, I can see I'm not good at using it. I'll practice some more with it, and hopefully I can revise the cyberbomber decorate definition (or whatever it is called). Oh, and myk, It is not a cybernetic Jacques Derrida, or at least, not yet. I haven't designed a sprite for it yet, so it still uses the normal Cyberdemon sprite. It'll most likely end up with that look when I'm done with it, though.

Share this post


Link to post

When you're done with it then you should really concider contacting the zdoom zdcmp2 crew and revise this bad ass bastard for them as a final boss for their project. At least I want to see this cyberbomber. :D

Here, take a look at my bulletpuff replacement BPuff, it uses it to randomly play the ricochet sample.

// JoBro Media Decorate starts here

actor BPuff replaces BulletPuff
{
  spawnid 131
  renderstyle Translucent
  alpha 0.5
  +NOBLOCKMAP
  +NOGRAVITY
  +ALLOWPARTICLES
  states
  {
  Spawn:
    PUFF A 4 bright
    PUFF B 4
    PUFF B 1 A_JUMP(200,2)
    PUFF B 1 A_PLAYSOUND(RICO)
    // Intentional fall-through
  Melee:
    PUFF CD 4
    PUFF CD 4
    stop
  }
}

// JoBro Media Decorate ends here

As you see the line

PUFF B 1 A_JUMP(200,2)

randomly jumps 2 frames (2 lines) down to the Melee section. The chance is quite high it does, but if it doesn't then the sound is played.

Share this post


Link to post

Okay, I currently have the Cyberbomber fixed, and I have a sprite for it, so I think I will send to the zdoom zdcmp2 crew crew as a final boss. Only 1 Question: How can I do that?

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
×