ACS built-in functions: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
No edit summary
Line 4: Line 4:
==Special TID info==
==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
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
 
==Function list==
==Sound and music==
===Sound and music===
*void ActivatorSound(str sound, int volume)
*void ActivatorSound(str sound, int volume)
:Starts a sound from script's activator, at the given volume. If there's no activating thing, the sound will be ambient.
:Starts a sound from script's activator, at the given volume. If there's no activating thing, the sound will be ambient.
Line 22: Line 22:
*void ThingSound (int tid, str sound, int volume);
*void ThingSound (int tid, str sound, int volume);


==Sectors==
===Sectors===
*void ChangeCeiling(int tag, str flatname)
*void ChangeCeiling(int tag, str flatname)
:Changes the ceiling texture of tagged sectors to flatname.
:Changes the ceiling texture of tagged sectors to flatname.
Line 32: Line 32:
:Gets sector floor height. Currently x and y are reserved for the time Eternity gets working slope physics.
:Gets sector floor height. Currently x and y are reserved for the time Eternity gets working slope physics.
*int GetSectorLightLevel (int tag)
*int GetSectorLightLevel (int tag)
==Things==
===Things===
*bool CheckSight(int source, int dest, int flags)
*bool CheckSight(int source, int dest, int flags)
: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.
: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.
Line 78: Line 78:
*int UniqueTID ([int tid[, int limit]])
*int UniqueTID ([int tid[, int limit]])


==Linedefs and sidedefs==
===Linedefs and sidedefs===
*[[GetLineX]]
*[[GetLineX]]
*[[GetLineY]]
*[[GetLineY]]
Line 86: Line 86:
*void SetLineTexture(int lineid, int line_side, int sidedef_texture, str texturename);
*void SetLineTexture(int lineid, int line_side, int sidedef_texture, str texturename);


==Sky==
===Sky===
*void SetSkyScrollSpeed (int sky, fixed skyspeed);
*void SetSkyScrollSpeed (int sky, fixed skyspeed);


==Scripts==
===Scripts===
*bool ACS_NamedExecuteAlways(str script, int map, int arg1, int arg2, int arg3)
*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.
:*Executes a named script, starting a new instance if one already exists. Returns true if successfully started.
Line 98: Line 98:
*bool ACS_NamedTerminate (string script, int map)
*bool ACS_NamedTerminate (string script, int map)


==Console==
===Console===
*int GetCVar (str cvar)
*int GetCVar (str cvar)
*string GetCVarString (str cvar)
*string GetCVarString (str cvar)
*int GetPlayerInput (int player, int input)
*int GetPlayerInput (int player, int input)
==Polyobjects==
===Polyobjects===
*fixed GetPolyobjX (int po)
*fixed GetPolyobjX (int po)
*fixed GetPolyobjY (int po)
*fixed GetPolyobjY (int po)
==Quake==
===Quake===
*void Radius_Quake2 (int tid, int intensity, int duration, int damrad, int tremrad, str sound)
*void Radius_Quake2 (int tid, int intensity, int duration, int damrad, int tremrad, str sound)
==Math==
===Math===
*int Random (int min, int max)
*int Random (int min, int max)
*int Sqrt (int number)
*int Sqrt (int number)
Line 113: Line 113:
*int VectorLength (int x, int y)
*int VectorLength (int x, int y)


==Strings==
===Strings===
*str StrLeft (str string, int length)
*str StrLeft (str string, int length)
*str StrMid (str string, int start, int length)
*str StrMid (str string, int start, int length)
*str StrRight (str string, int length)
*str StrRight (str string, int length)


==Level state==
===Level state===
*[[SetAirControl]]
*[[SetAirControl]]
*[[SetAirFriction]]
*[[SetAirFriction]]

Revision as of 12:15, 11 December 2018

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

Function list

Sound and music

  • void ActivatorSound(str sound, int volume)
Starts a sound from script's activator, at the given volume. If there's no activating thing, the sound will be ambient.
  • void AmbientSound(str sound, int volume)
Starts an ambient sound.
  • void LocalAmbientSound(str sound, str volume)
Starts an ambient sound that can only be heard by the activator, normally a player.
  • void PlaySound (int tid, str sound [, int channel [, fixed volume [, bool looping [, fixed attenuation]]]])
  • void PlayActorSound (int tid, int sound, int channel, fixed volume, bool looping, fixed attenuation)
  • void SectorSound(str sound, int volume);
  • void SetMusic (str song [, int order [, int unused]])
  • void LocalSetMusic (str song [, int order [, int unused]])
  • void SoundSequence (str sndseq);
  • void SoundSequenceOnActor (int tid, str sndseq);
  • void StopSound (int tid, int channel);
  • void ThingSound (int tid, str sound, int volume);

Sectors

  • void ChangeCeiling(int tag, str flatname)
Changes the ceiling texture of tagged sectors to flatname.
  • void ChangeFloor(int tag, str flatname)
Changes the floor texture of tagged sectors to flatname.
  • fixed GetSectorCeilingZ (int tag, int x, int y)
Gets sector ceiling height. Currently x and y are reserved for the time Eternity gets working slope physics.
  • fixed GetSectorFloorZ (int tag, int x, int y)
Gets sector floor height. Currently x and y are reserved for the time Eternity gets working slope physics.
  • int GetSectorLightLevel (int tag)

Things

  • bool CheckSight(int source, int dest, int flags)
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.
  • bool CheckFlag(int tid, str flag)
Returns true if the first thing with the given tid has the given flag enabled.
  • bool CheckActorClass(int tid, str class)
Returns true if the first thing with the given tid is of the given class.
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
  • GetActorProperty
  • IsTIDUsed
  • void SectorDamage (int tag, int amount, str type, str protection_item, int flags)
  • int SetActivator (int tid[, pointer_selector])
  • bool SetActivatorToTarget (int tid)
  • void SetActorAngle (int tid, fixed angle)
  • bool SetActorVelocity (int tid, fixed velx, fixed vely, fixed velz, bool add, bool setbob)
  • void SetActorPitch (int tid, int pitch)
  • bool SetActorPosition (int tid, fixed x, fixed y, fixed z, bool fog)
  • void SetThingSpecial (int tid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])
  • int SetActorState(int tid, str statename[, bool exact]);
  • SetActorProperty
  • int Spawn (str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])
  • int SpawnForced (str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])
  • void SpawnProjectile (int tid, string type, int angle, int speed, int vspeed, int gravity, int newtid);
  • int SpawnSpot (str classname, int spottid [, int tid [, int angle]])
  • int SpawnSpotForced (str classname, int spottid [, int tid [, int angle]])
  • int SpawnSpotFacing (str classname, int spottid [, int tid])
  • int SpawnSpotFacingForced (str classname, int spottid [, int tid])
  • int ThingCount (int type, int tid)
  • int ThingCountName (str classname, int tid)
  • int ThingCountSector (int type, int tid, int tag)
  • int ThingCountNameSector (str classname, int tid, int tag)
  • int Thing_Damage2 (int tid, int amount, str type);
  • void Thing_Projectile2 (int tid, int type, int angle, int speed, int vspeed, int gravity, int newtid)
  • int UniqueTID ([int tid[, int limit]])

Linedefs and sidedefs

  • GetLineX
  • GetLineY
  • LineSide
  • void ReplaceTextures (str oldtexturename, str newtexturename [, int flags])
  • void SetLineSpecial (int lineid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])
  • void SetLineTexture(int lineid, int line_side, int sidedef_texture, str texturename);

Sky

  • void SetSkyScrollSpeed (int sky, fixed skyspeed);

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

  • int GetCVar (str cvar)
  • string GetCVarString (str cvar)
  • int GetPlayerInput (int player, int input)

Polyobjects

  • fixed GetPolyobjX (int po)
  • fixed GetPolyobjY (int po)

Quake

  • void Radius_Quake2 (int tid, int intensity, int duration, int damrad, int tremrad, str sound)

Math

  • int Random (int min, int max)
  • int Sqrt (int number)
  • fixed FixedSqrt (fixed number)
  • int VectorLength (int x, int y)

Strings

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

Level state