mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-12-24 02:30:45 +00:00
cf11cbdb30
SVN r4 (trunk)
597 lines
30 KiB
Text
597 lines
30 KiB
Text
|
|
|
|
Examples for actor definitions
|
|
------------------------------
|
|
|
|
1) a complete definition from scratch:
|
|
|
|
ACTOR ZombieMan 3004
|
|
{
|
|
Health 20
|
|
Radius 20
|
|
Height 56
|
|
Speed 8
|
|
PainChance 200
|
|
MONSTER
|
|
+FLOORCLIP
|
|
SeeSound grunt/sight
|
|
AttackSound grunt/attack
|
|
PainSound grunt/pain
|
|
DeathSound grunt/death
|
|
ActiveSound grunt/active
|
|
Obituary "%o was killed by a zombieman."
|
|
DropItem Clip
|
|
Damage 4
|
|
States
|
|
{
|
|
Spawn:
|
|
POSS AB 10 A_Look
|
|
Loop
|
|
See:
|
|
POSS AABBCCDD 4 A_Chase
|
|
Loop
|
|
Missile:
|
|
POSS E 10 A_FaceTarget
|
|
POSS F 8 A_BulletAttack
|
|
POSS E 8
|
|
Goto See
|
|
Pain:
|
|
POSS G 3
|
|
POSS G 3 A_Pain
|
|
Goto See
|
|
Death:
|
|
POSS H 5
|
|
POSS I 5 A_Scream
|
|
POSS J 5 A_Fall
|
|
POSS K 5
|
|
POSS L -1
|
|
Stop
|
|
XDeath:
|
|
POSS M 5
|
|
POSS N 5 A_XScream
|
|
POSS O 5 A_Fall
|
|
POSS PQRST 5
|
|
POSS U -1
|
|
Stop
|
|
Raise:
|
|
POSS KJIH 5
|
|
Goto See
|
|
}
|
|
}
|
|
|
|
|
|
2) an actor which inherits from an existing one:
|
|
|
|
|
|
ACTOR PlasmaZombie : ZombieMan 9600
|
|
{
|
|
Health 40
|
|
DropItem Cell
|
|
MissileType PlasmaBall
|
|
States
|
|
{
|
|
Missile:
|
|
POSS E 10 A_FaceTarget
|
|
POSS F 5 A_MissileAttack
|
|
POSS E 5 A_FaceTarget
|
|
POSS F 5 A_MissileAttack
|
|
POSS E 5 A_FaceTarget
|
|
POSS F 5 A_MissileAttack
|
|
Goto See
|
|
}
|
|
}
|
|
|
|
(this is a zombie which fires 3 plasma bullets when attacking)
|
|
|
|
|
|
3) an actor which uses SKIP_SUPER
|
|
|
|
ACTOR DeadZombieMan : ZombieMan 18
|
|
{
|
|
SKIP_SUPER
|
|
Spawn Parent Death+4
|
|
}
|
|
|
|
(this actor doesn't inherit anything from its parent - it just uses
|
|
some of its states.)
|
|
|
|
|
|
Syntax:
|
|
-------
|
|
|
|
ACTOR classname [ : parentclassname] [doomednum]
|
|
{
|
|
properties
|
|
flags
|
|
...
|
|
}
|
|
|
|
classname: The name this new actor is referenced by in the game
|
|
parentclassname: (optional) The name of a parent class this new actor
|
|
inherits its attributes from.
|
|
doomednum: Editor number for this actor (optional)
|
|
|
|
|
|
List of properties:
|
|
===================
|
|
|
|
SKIP_SUPER reinitializes the actor as if it has no parent
|
|
This can be used to have access to the parent's
|
|
states without inheriting its attributes. See
|
|
3) above for an example.
|
|
SPAWNID value defines the spawn ID to be used with Thing_Spawn
|
|
and its derivates.
|
|
HEALTH value defines the health a monster starts with
|
|
Default is 1000
|
|
REACTIONTIME value Time in tics (1/35 seconds) a monster needs
|
|
to attack back. There is normally no need to
|
|
change this value.
|
|
Default is 8
|
|
PAINCHANCE value Probability of entering the pain state.
|
|
255=always, 0=never
|
|
Default is 0
|
|
DAMAGE value For a projectile defines the damage it inflicts
|
|
upon impact. The formula is random(1,8)*damage
|
|
or (random(1,4)*damage if STRIFEDAMAGE is set.
|
|
This also defines the damage for actors which
|
|
attack like the Lost Soul. The formula for this
|
|
is random(1,8)*damage.
|
|
DAMAGE is also used to define how many bullets
|
|
are fired by the generic hitscan attack function
|
|
A_Bulletattack.
|
|
Default is 0
|
|
SPEED value Defines how fast an actor moves. For projectiles
|
|
this is the distance it moves. For monsters it
|
|
defines the size of one step done in A_Chase.
|
|
Default is 0.
|
|
RADIUS value Defines the radius of this actor.
|
|
Default is 20.
|
|
HEIGHT value Defines the height of this actor
|
|
Default is 16.
|
|
MASS value Defines the mass of this actor.
|
|
The larger the mass the less an actor moves when
|
|
being thrust by damage.
|
|
Default is 100.
|
|
XSCALE value Defines the X-scaling for this actor.
|
|
Range is [0.0, 4.0].
|
|
Default is 1.0
|
|
YSCALE value Defines the Y-scaling for this actor.
|
|
Range is [0.0, 4.0].
|
|
Default is 1.0
|
|
SCALE value Combines XScale and YScale
|
|
Range is [0.0, 4.0].
|
|
Default is 1.0
|
|
SEESOUND name Defines the sound the actor makes when it sees
|
|
the player (for monsters) or when a projectile
|
|
is spawned.
|
|
ATTACKSOUND name Defines the sound the actor makes when attacking.
|
|
PAINSOUND name Defines the sound the actor makes when in pain.
|
|
To hear this sound A_Pain has to be called.
|
|
DEATHSOUND name Defines the sound the actor makes when dying
|
|
or when a projectile explodes.
|
|
ACTIVESOUND name Defines the sound the actor makes when active.
|
|
MELEESOUND name Defines the sound the actor makes when doing
|
|
a melee attack in A_MeleeAttack. Note that
|
|
several original attack functions which have
|
|
such a sound use a hard coded reference (e.g.
|
|
A_TroopAttack uses imp/melee)
|
|
RENDERSTYLE type Defines how this actor is rendered. Useful values are:
|
|
NONE - actor is invisible
|
|
NORMAL - actor is visible and not translucent
|
|
FUZZY - like the Spectre in Doom
|
|
TRANSLUCENT - actor is translucent.
|
|
ADD - actor uses additive translucency.
|
|
Default is NORMAL
|
|
ALPHA value defines the opacity/intensity for render styles
|
|
TRANSLUCENT and ADD.
|
|
Range is [0.0, 1.0]
|
|
Default is 1.0
|
|
DEATHHEIGHT value Defines the height this actor has after dying.
|
|
Default is 1/4 of the original height
|
|
BURNHEIGHT value Defines the height this actor has after dying by fire.
|
|
Default is 1/4 of the original height
|
|
*OBITUARY string Defines the obituary string for this actor. This string
|
|
uses a few placeholders:
|
|
%o: victim's name
|
|
%k: killer's name
|
|
%g: he/she/it
|
|
%h: him/her/it
|
|
%p: his/her/its
|
|
*HITOBITUARY string Defines the obituary string for a melee attack by this
|
|
actor. If not present OBITUARY is used. The same format
|
|
as for OBITUARY appplies.
|
|
*DONTHURTSHOOTER If this actor deals explosive damage and is a projectile
|
|
it does not hurt the shooter.
|
|
*EXPLOSIONRADIUS value Defines the radius of explosive damage
|
|
Default is 128
|
|
*EXPLOSIONDAMAGE value Defines the amount of explosive damage
|
|
Default is 128
|
|
MELEEDAMAGE value Defines the amount of damage this monste will inflict
|
|
when using A_MeleeAttack. The formula is random(1,8)*damage.
|
|
MISSILETYPE name Defines the projectile type this monster is firing when
|
|
using A_MissileAttack. Any valid projectile present in the
|
|
game can be specified.
|
|
MISSILEHEIGHT value Defines the height at which the projectile is spawned.
|
|
Default is 32.
|
|
MONSTER Sets all appropriate flags to make this actor act as a regular
|
|
monster. The following flags are being set:
|
|
SHOOTABLE, COUNTKILL, SOLID, CANPUSHWALLS, ACTIVATEMCROSS, CANPASS, ISMONSTER.
|
|
PROJECTILE Sets all appropriate flags to make this actor act as a regular
|
|
projectile. The following flags are being set:
|
|
NOBLOCKMAP, NOGRAVITY, DROPOFF, MISSILE, ACTIVATEIMPACT, ACTIVATEPCROSS, NOTELEPORT.
|
|
CLEARFLAGS clears all flags
|
|
*DROPITEM name [probability [amount]]
|
|
Drops an item of type 'name' when dying. Optionally the probability
|
|
can be specified. A probability of 255 means the item is always dropped,
|
|
a probability of 0 means it is never dropped.
|
|
amount is only applicable for Heretic ammuniton. It specifies how much
|
|
ammo the dropped item contains.
|
|
There can be more than one DROPITEM definitions for an actor. The
|
|
amount is unlimited.
|
|
DROPITEM works differently with inherited actors. An actor can inherit
|
|
a list of DROPITEM definitions from its parent but if it defines one
|
|
of its own the entire parent's list is discarded.
|
|
SPAWN
|
|
SEE
|
|
MELEE
|
|
MISSILE
|
|
PAIN
|
|
DEATH
|
|
XDEATH
|
|
BURN
|
|
ICE
|
|
RAISE
|
|
CRASH With these keywords a specific state in the actor can be either cleared
|
|
or set to one of the parent's states. The syntax is:
|
|
SPAWN 0 to clear a state or
|
|
SPAWN PARENT DEATH[+offset] to set a parent's state. See 3) above for an
|
|
example
|
|
|
|
STATES Defines an actor's states. See the separate block STATES for more information
|
|
|
|
|
|
Properties prefixed with a '*' cannot be inherited from predefined actors due to the
|
|
implementation.
|
|
|
|
|
|
List of flags
|
|
=============
|
|
|
|
|
|
Flags are special properties that can be either set or cleared
|
|
+flagname sets a flag
|
|
-flagname clears a flag
|
|
|
|
The following flags exist. If applicable the name is identical with the one used
|
|
in regular DECORATE items.
|
|
|
|
SOLID set when the object should be solid (blocking)
|
|
SHOOTABLE object can be damaged. If health goes below 0 it dies
|
|
NOSECTOR Object is not linked into the sector. This makes it invisible
|
|
and excludes it from certain physics checks.
|
|
NOBLOCKMAP This object is excluded from passive collision detection. Nothing else
|
|
can run into a NOBLOCKMAP object but the object itself can run
|
|
into others. All projectiles have this set.
|
|
AMBUSH Monster is 'deaf'. Normally this is set in an editor on a per-
|
|
object basis.
|
|
JUSTHIT try to attack right back (used in monster AI, probably not
|
|
particularly useful in actor definitions)
|
|
JUSTATTACKED take at least one step before attacking
|
|
SPAWNCEILING spawned hanging from the ceiling as opposed to standing on the
|
|
floor.
|
|
NOGRAVITY Actor is not subject to gravity
|
|
DROPOFF Monster can walk over ledges/taller steps.
|
|
NOCLIP Actor is totally excluded from collision detection and
|
|
can walk through walls etc.
|
|
FLOAT Floating monster - can change height at will.
|
|
TELEPORT Although implemented there isn't a single actor which
|
|
uses this flag. I can't say what it does precisely but
|
|
it excludes an actor that has it set from certain parts
|
|
of the collision detection logic.
|
|
MISSILE Actor is a projectile.
|
|
SHADOW Actor is nearly invisible. Unlike regular Doom this does
|
|
not automatically imply fuzziness. For that you have to
|
|
specify RenderStyle Fuzzy.
|
|
NOBLOOD Actor does not bleed when hurt.
|
|
CORPSE Actor is a corpse. For normal actors there is no need to
|
|
set this but in combination with the crashstate it might
|
|
be useful.
|
|
COUNTKILL Counts toward kill percentage
|
|
COUNTITEM Counts toward item percentage
|
|
NOTDMATCH Is not being spawned in Deathmatch games.
|
|
NOLIFTDROP Does not drop when a lift under it lowers
|
|
STEALTH Stealth monster
|
|
ICECORPSE Actor is a frozen corpse
|
|
LOWGRAVITY Actor is subject to low gravity
|
|
WINDTHRUST Actor is thrust by the Heretic wind specials. I hope its
|
|
functionality is some day expanded to the Boom wind specials
|
|
HERETICBOUNCE Heretic style bouncing (objects only bounce off the floor)
|
|
HEXENBOUNCE Hexen style bouncing (objects bounce off floors and walls)
|
|
DOOMBOUNCE ZDoom style bouncing (like hexen but stops when losing a certain
|
|
amount of momentum)
|
|
The 3 bounce types are mutually exclusive
|
|
FLOORCLIP Actor's lower part is clipped when standing in a sector
|
|
with a liquid texture (defined in the TERRAIN lump)
|
|
SPAWNFLOAT Actor is spawned hat a random height in the sector.
|
|
NOTELEPORT Actor cannot teleport
|
|
RIPPER For projectiles that can rip through monsters and players.
|
|
PUSHABLE Actor can be pushed.
|
|
SLIDESONWALLS Actor can slide along walls
|
|
CANPASS Actor uses height sensitive collision detection. Use with care!
|
|
This only makes sense on actors that can move by themselves.
|
|
CANNOTPUSH This actor cannot push pushable objects.
|
|
THRUGHOST This actor passes through ghosts (set with the GHOST flag.)
|
|
BOSS Actor is a boss. Bosses have a few special properties
|
|
(like playing some sounds at full volume.)
|
|
FIREDAMAGE Actor inflicts fire damage.
|
|
ICEDAMAGE Actor inflicts ice damage.
|
|
NODAMAGETHRUST Upon hitting another actor the victim is not thrust when damaged.
|
|
TELESTOMP This actor can telefrag others.
|
|
FLOATBOB use float bobbing z movement like Heretic/Hexen's powerups
|
|
ACTIVATEIMPACT Upon hitting a wall this actor can activate G1/GR lines
|
|
CANPUSHWALLS Upon hitting a wall this actor can activate P1/PR lines
|
|
ACTIVATEMCROSS This actor can activate 'Monster crosses' lines.
|
|
ACTIVATEPCROSS This actor can activate 'Projectile crosses' lines.
|
|
CANTLEAVEFLOORPIC This actor cannot cross into a sector with a different floor
|
|
texture.
|
|
NONSHOOTABLE Actor cannot be hit (projectiles pass through.)
|
|
INVULNERABLE Actor cannot be hurt.
|
|
DORMANT Actor is dormant and has to be activated with Thing_Activate.
|
|
SEEKERMISSILE Actor is a homing missile. This is only used as a hint to the
|
|
game. For a homing missile to be effective it has to use
|
|
one of the seeker missile code pointers in its moving states.
|
|
REFLECTIVE Actor reflects missiles shot at it.
|
|
FLOORHUGGER defines a projectile that is moving along the floor.
|
|
CEILINGHUGGER defines a projectile that is moving along the ceiling.
|
|
NORADIUSDMG Actor cannot be hurt by radius (explosive) damage.
|
|
GHOST Actor is a ghost. This does not imply translucency etc.
|
|
DONTSPLASH Actor does not create any terrain splashes
|
|
DONTOVERLAP Two actors with this flag cannot overlap at the same x/y-position
|
|
but different heights
|
|
DONTMORPH Cannot be morphed into a chicken or pig.
|
|
DONTSQUASH This actor cannot be instantly killed by Heretic's powered up Mace.
|
|
FULLVOLACTIVE Plays its active sound at full volume
|
|
ISMONSTER Actor is a monster
|
|
SKYEXPLODE Projectile explodes when hitting a sky instead of vanishing
|
|
STAYMORPHED If morphed this actor cannot revert to its original form.
|
|
DONTBLAST Cannot be blasted by Hexen's Disc of Repulsion.
|
|
CANBLAST Can be blasted by Hexen's Disc of Repulsion. For monsters this is
|
|
implicit.
|
|
NOTARGET cannot be targeted by other monsters.
|
|
DONTGIB cannot be crushed to a pile of blood.
|
|
NOBLOCKMONST can walk through monster blocking lines.
|
|
FULLVOLDEATH Plays its death sound at full volume
|
|
CANBOUNCEWATER Can bounce on water. Normally an object is destroyed in this case.
|
|
NOWALLBOUNCESND Does not play a sound when bouncing off a wall. Normally the
|
|
Seesound is played in this case.
|
|
FOILINVUL Can hurt invulnerable monsters (but not players.)
|
|
NOTELEOTHER Cannot be teleported by Hexen's banishment device.
|
|
QUICKTORETALIATE Immediately switches targets when being attacked.
|
|
NOICEDEATH Monster cannot be frozen, used to prevent the generic ice death.
|
|
RANDOMIZE Randomizes the duration for its first frame. Most of Doom's projectiles
|
|
use this.
|
|
FIXMAPTHINGPOS Move thing out of walls. For torches and similar things that tend to be
|
|
placed directly on a wall.
|
|
ACTLIKEBRIDGE Uses the special collision logic for bridge things.
|
|
STRIFEDAMAGE Strife uses a different damage calculation for its projectiles.
|
|
|
|
|
|
States (a.k.a. Frames)
|
|
======================
|
|
|
|
States define the behavior of an actor. For any regular actor there are the following
|
|
labels:
|
|
|
|
SPAWN defines the state that is displayed when an actor is spawned
|
|
For monsters this is normally also the idle loop.
|
|
SEE defines the walking animation for a monster.
|
|
MELEE defines the melee (near) attack.
|
|
MISSILE defines the missile (far) attack.
|
|
PAIN defines the pain action
|
|
DEATH defines the normal death sequence
|
|
XDEATH defines the extreme (splatter) death sequence
|
|
BURN defines the burn (fire) death sequence
|
|
ICE defines the freeze (ice) death sequence
|
|
RAISE defines the resurrection sequence (for the Arch Vile)
|
|
CRASH defines the crash sequence. This is entered when the actor
|
|
is a corpse and hits the floor.
|
|
|
|
|
|
|
|
|
|
A state definition is started with the 'STATES' keyword and enclosed
|
|
by braces '{', '}'.
|
|
|
|
A state definition consists of the following:
|
|
|
|
1) State labels. This is one of the keywords listed above followed by a ':'.
|
|
Example
|
|
Spawn:
|
|
defines the entry point for the spawn state.
|
|
|
|
2) State definitions. These consist of a sprite name, a frame sequence,
|
|
the duration in tics (1/35 seconds) and optionally the 'BRIGHT'
|
|
keyword to indicate a fullbright display and an action function name
|
|
(code pointer)
|
|
Example
|
|
POSS AABBCCDD 4 A_Chase
|
|
This defines 8 states. Each one of them uses the sprite POSS, has a duration
|
|
of 4 and uses the code pointer A_Chase which is the standard walk function
|
|
for monsters. Of these 8 states the first 2 will use the sprite frame 'A',
|
|
the next 2 the frame 'B' and so on. The length of theframe sequence can be
|
|
up to 256 characters. Valid frames are 'A'-'Z', '[', '\' and ']'.
|
|
Different sprites can be freely mixed in an actor definition each separate
|
|
state definition is limited to one sprite only.
|
|
|
|
3) Jump instructions
|
|
There are 4 different jump instructions:
|
|
|
|
-Loop jumps to the most recently defined state label. This is
|
|
used for a looping animation
|
|
-Stop Stops animating this actor. Normally this is used at the
|
|
end of the death sequences.
|
|
-Wait Loops the last defined state. This is only useful if a
|
|
code pointer is used that waits a given time or for a
|
|
certain event. Currently the only usable code pointer
|
|
for this is A_FreezeDeathChunks which is normally used
|
|
at the end of a freeze death sequence.
|
|
-Goto label+offset
|
|
Jumps to an arbitrary state in the current actor.
|
|
With this you can also jump to a state that was
|
|
inherited by a parent. See Example 2) above for this
|
|
The 'Goto see' jumps to the walking animation that
|
|
has been inherited.
|
|
|
|
Important note:
|
|
---------------
|
|
This format has been designed for maximum flexibility. As a result no assumptions
|
|
are made what the designer wants. No states are ever implicitly created.
|
|
|
|
|
|
Action functions:
|
|
=================
|
|
|
|
This information is kept rather brief. For normal purposes in-depth information
|
|
is not necessary. All action functions names are preceded by 'A_'.
|
|
|
|
A_BFGSpray Starts the effect when a BFG projectile hits something
|
|
A_Pain Plays the pain sound (that's all it does, it can also be used outside the pain sequence!)
|
|
A_NoBlocking Sets the actor to non-blocking and drops items.
|
|
A_XScream Plays the sound 'misc/gibbed'
|
|
A_Look Look for players - used in the idle sequence of monsters
|
|
A_Chase Standard walking function - used in the walk sequence of monsters
|
|
A_FaceTarget Change angle to face target
|
|
A_PosAttack Zombie attack (one bullet)
|
|
A_Scream Plays the death sound (that's all it does, it can also be used outside the death sequence!)
|
|
A_SPosAttack Shotgunner attack (3 bullets)
|
|
A_VileChase Arch Vile: look for corpses and walk.
|
|
A_VileStart Plays sound 'vile/start'
|
|
A_VileTarget Spawns the Arch Vile fire.
|
|
A_VileAttack Arch Vile attack function. Inflicts some damage and thrusts victim in the air.
|
|
A_Fire Keeps Arch Vile's fire in front of target
|
|
A_StartFire Plays sound 'vile/firestrt' and calls A_Fire
|
|
A_FireCrackle Plays sound 'vile/firecrkl' and calls A_Fire
|
|
A_Tracer Homing routine for Revenant's missile
|
|
A_SkelWhoosh Calls A_FaceTarget and plays sound 'skeleton/swing'.
|
|
A_SkelFist Revenant's melee attack.
|
|
A_SkelMissile Revenant's missile attack
|
|
A_FatRaise Calls A_FaceTarget and plays sound 'fatso/raiseguns'.
|
|
A_FatAttack1 Mancubus attack 1
|
|
A_FatAttack2 Mancubus attack 2
|
|
A_FatAttack3 Mancubus attack 3
|
|
A_BossDeath Boss death specials. Has no effect for custom monsters
|
|
A_CPosAttack Chaingunner attack
|
|
A_CPosRefire Chaingunner refiring
|
|
A_TroopAttack Imp attack
|
|
A_SargAttack Demon attack
|
|
A_HeadAttack Cacodemon attack
|
|
A_BruisAttack Baron attack
|
|
A_SkullAttack Lost Soul attack
|
|
A_Metal Plays 'spider/metal' and calls A_Chase
|
|
A_SpidRefire Spider refiring
|
|
A_BabyMetal Plays 'baby/walk' and calls A_Chase
|
|
A_BspiAttack Arachnotron attack
|
|
A_Hoof Plays 'cyber/hoof' and calls A_Chase
|
|
A_CyberAttack Cyberdemon attack
|
|
A_PainAttack Pain Elemental attack
|
|
A_PainDie Pain Elemental death
|
|
A_KeenDie Keen death - opens door with tag 666 if all monsters of the calling kind are dead.
|
|
A_BrainPain Plays 'brain/pain' at full volume.
|
|
A_BrainScream Starts brain explosion
|
|
A_BrainDie Ends level if not in deathmatch
|
|
A_BrainAwake Plays 'brain/sight' at full volume.
|
|
A_BrainSpit Spits one brain cube
|
|
A_SpawnFly Brain cube handling incl. monster creation
|
|
A_SpawnSound plays 'brain/cube' and calls A_SpawnFly
|
|
A_BrainExplode Brain explosion
|
|
A_Die Kills actor
|
|
A_Detonate Inflicts explosive damage - amount specified by DAMAGE in the actor
|
|
A_Mushroom Shoots a lot of mancubus fireballs high in the air
|
|
|
|
A_SetFloorClip Sets the FLOORCLIP flag
|
|
A_UnSetFloorClip Clears the FLOORCLIP flag
|
|
A_HideThing Makes actor invisible
|
|
A_UnHideThing Makes actor visible
|
|
A_SetInvulnerable Makes actor invulnerable
|
|
A_UnSetInvulnerable Makes actor vulnerable
|
|
A_SetReflective Sets the REFLECTIVE flag
|
|
A_UnSetReflective Clears the REFLECTIVE flag
|
|
A_SetReflectiveInvulnerable A_SetInvulnerable + A_SetReflective
|
|
A_UnSetReflectiveInvulnerable A_UnSetInvulnerable + A_UnSetReflective
|
|
A_SetShootable Makes actor shootable
|
|
A_UnSetShootable Makes actor non shootable
|
|
A_NoGravity makes Actor not subject to gravity
|
|
A_Gravity makes Actor subject to gravity
|
|
A_LowGravity makes Actor subject to low gravity
|
|
A_ScreamAndUnblock combines A_Scream and A_NoBlocking
|
|
A_ActiveSound plays actor's active sound
|
|
A_ActiveAndUnblock combines A_ActiveSound and A_NoBlocking
|
|
A_FastChase A_Chase variation used by Hexen's class bosses
|
|
A_FreezeDeath Starts the freeze death sequence.
|
|
A_GenericFreezeDeath Starts the generic freeze death sequence. Calls A_FreezeDeath and sets the ice palette translation.
|
|
A_FreezeDeathChunks Burst the actor into chunks. The state with this function has to be looped because it waits until all movement has stopped.
|
|
A_IceGuyDie Stops all movement and bursts the actor into ice chunks immediately.
|
|
|
|
|
|
The following functions use some actor properties to determine their behavior
|
|
-----------------------------------------------------------------------------
|
|
|
|
A_Explode Inflicts explosive damage.
|
|
Uses:
|
|
ExplosionDamage Amount of damage being inflicted
|
|
ExplosionRadius Radius of damage
|
|
DontHurtShooter If a projectile, don't hurt the guy who shot it.
|
|
|
|
A_MeleeAttack performs a melee attack
|
|
Uses:
|
|
MeleeDamage Amount of damage, The formula is random(1,8)*MeleeDamage
|
|
MeleeSound Sound being played if the actual attack happens.
|
|
|
|
A_MissileAttack launches a missile
|
|
Uses:
|
|
MissileName Actor name of the missile being launched
|
|
MissileHeight Height above floor for the spawned missile
|
|
|
|
A_MissileAttack can handle homing missiles as long as the missile
|
|
has the SEEKERMISSILE flag set and contains some kind of tracer
|
|
code pointer (A_Tracer, A_MummyFX1Seek, etc.) In its moving animation.
|
|
|
|
A_ComboAttack combines A_MeleeAttack and A_MissileAttack depending on the current
|
|
distance to the target.
|
|
|
|
A_BulletAttack Hitscan attack
|
|
Uses:
|
|
damage amount of bullets being fired
|
|
|
|
|
|
The following functions use direct parameters:
|
|
----------------------------------------------
|
|
|
|
A_PlaySound ("soundname") Plays the sound soundname
|
|
A_PlayWeaponSound ("soundname") Plays the sound soundname on the weapon channel
|
|
Sounds played with A_PlaySound and A_PlayWeaponSound
|
|
can occur simultaneously.
|
|
A_SeekerMissile (threshold, maxturnangle)
|
|
Seeker missile handling. threshold and maxturnangle determine
|
|
how 'aggressive' the missile will home in on its target. The larger
|
|
the values the more precise it is. threshold specifies the angle
|
|
inside which the missile will home in directly on its target.
|
|
If the angle toward the target is larger than threshold it will
|
|
change its movement angle only partially towards the target.
|
|
maxturnangle is the maximum change of movement direction that
|
|
will be performed in one move. Maxturnangle should be larger
|
|
than threshold. Both angles are specified in degrees and must be
|
|
in the range [0, 90].
|
|
Example: The flaming skull of Heretic's mummy uses an equivalent
|
|
of A_SeekerMisile 20 30
|
|
A_Jump (chance, distance) Randomly advances to different state. Like painchance, the chance
|
|
value can range between 0 and 255. A chance of 0 will never advance,
|
|
while a chance of 255 will almost always advance. If the state is
|
|
not advanced, then the one immediately following the A_Jump will
|
|
be used as if A_Jump had not been present.
|
|
A_CustomMissile ("missiletype", spawnheight, spawnofs_xy, angle)
|
|
Spawns a missile attack where "missiletype" is the type of missile
|
|
to shoot, spawnheight is how high from the monster's feet to shoot
|
|
the missile, spawnofs_xy is how far the monster's center to shoot
|
|
the missile, and angle is the direction relative to the monster's
|
|
facing angle in which to shoot the missile.
|