ACS built-in functions: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
Line 63: Line 63:
*[[GetActorVelY]]
*[[GetActorVelY]]
*[[GetActorVelZ]]
*[[GetActorVelZ]]
*[[GetActorX]]
*[[GetActorY]]
*[[GetActorZ]]
*[[GetActorZ]]
*[[IsTIDUsed]]
*[[IsTIDUsed]]

Revision as of 12:55, 31 December 2021

These are predefined ACS functions with no parameterized linedef special equivalents, accessible only through ACS scripts.

NOTE: most of these functions are meant to be compatible with those from ZDoom. For any ones not yet documented on this wiki, you can check the ZDoom wiki. A few of them may be incompletely implemented in Eternity. Don't hesitate to update the wiki in case of any mistakes.

Special TID info

For functions affecting things, some TIDs (thing tags) carry special meaning. TID 0 means the activator, and TIDs -1 ... -4 mean each of the four players in the game -- this is an Eternity extension

Data type info

You may see specifiers such as void, str, int and others in ACS function signatures. They act as a guide on what kinds of values are expected, but in ACS there really are only two types: str and int (and str internally is merely a string ID number). Most importantly:

  • void means that a function should be used as a procedure (command) without returning anything,
  • fixed means you can use the decimal point notation: 1.0 is equivalent to 65536, 1.5 to 98304 etc. In ACS, such values are still of int type, but whether you use the decimal point or not is quite relevant. A value such as 128.0 is not the same as 128: it's actually equal to 8388608 (no decimal point).

Function list

Sound and music

Sectors

Changes the ceiling texture of tagged sectors to flatname.
Changes the floor texture of tagged sectors to flatname.

Things

Returns true if the first thing with the given tid has the given flag enabled.
Returns true if there's a line of sight between at least one thing tagged as source and one thing tagged as dest. Currently flags is reserved and must be 0.
Checks the kind of thing tagged tid. It returns a set of flags, possibly combined:
  • ACTOR_PLAYER (2): it's player-controlled
  • ACTOR_VOODOODOLL (8): it's a duplicate player start, not controlled by the player but still linked to it. Used in Boom maps for advanced mapping tricks
  • ACTOR_MONSTER (16): it's a monster (has COUNTKILL or KILLABLE thing type flag set)
  • ACTOR_MISSILE (128): it's a projectile in flight (has MISSILE thing type flag set)
  • ACTOR_GENERIC (256): neither a monster, nor a projectile
  • ACTOR_ALIVE (32): has positive health
  • ACTOR_DEAD (64): has health <= 0
  • ACTOR_NONE (0): no thing found with this TID
  • ACTOR_WORLD (1): TID is 0 but activator isn't a thing

Player

Linedefs and sidedefs

zspecial.acs index Name Return type Parameters Description
internal ClearLineSpecial nothing nothing Clears the trigger linedef's special.
GetLineRowOffset
GetLineX
GetLineY
LineSide
ReplaceTextures nothing str old_texture_name, str new_texture_name[, int flags]
SetLineBlocking
internal SetLineMonsterBlocking Makes a linedef block or not block monsters.
SetLineSpecial
SetLineTexture nothing int line_id, int line_side, int sidedef_texture, str texture_name

Sky

Scripts

  • bool ACS_NamedExecuteAlways(str script, int map, int arg1, int arg2, int arg3)
  • Executes a named script, starting a new instance if one already exists. Returns true if successfully started.
  • bool ACS_NamedExecute(str script, int map, int arg1, int arg2, int arg3)
  • Executes a named script. Returns true if successfully started.
  • int ACS_NamedExecuteWithResult (string script, int s_arg1, int s_arg2, int s_arg3, int s_arg4)
  • bool ACS_NamedSuspend (string script, int map)
  • bool ACS_NamedTerminate (string script, int map)

Console

Polyobjects

Quake

Math

Strings

  • str StrLeft (str string, int length)
  • str StrMid (str string, int start, int length)
  • str StrRight (str string, int length)

Level state

See also