Editing ACS scripting
From Eternity Wiki
Jump to navigationJump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
For the upcoming Hexen implementation, Eternity supports ACS scripts. As well as it can run the vanilla Hexen ACS script bytecodes, it can run the modern ACS as produced for ZDoom, and it's designed to be compatible with the functions and definitions provided in ''zcommon.acs''. | For the upcoming Hexen implementation, Eternity supports ACS scripts. As well as it can run the vanilla Hexen ACS script bytecodes, it can run the modern ACS as produced for ZDoom, and it's designed to be compatible with the functions and definitions provided in ''zcommon.acs''. | ||
Comprehensive information regarding the ACS language for Hexen can be found at the [http://doomlegacy.sourceforge.net/hosted/hexenspec09.txt Official Hexen Technical Specs] by Ben Morris and Ben Gokey. | Comprehensive information regarding the ACS language for Hexen can be found at the [http://doomlegacy.sourceforge.net/hosted/hexenspec09.txt Official Hexen Technical Specs] by Ben Morris and Ben Gokey. | ||
Most or all of the [[Detailed parameterized linedef specification|parameterized]] specials can be called from ACS as functions, though the equivalent numbers they use (as listed in ''zspecial.acs'') are from the Hexen | Most or all of the [[Detailed parameterized linedef specification|parameterized]] specials can be called from ACS as functions, though the equivalent numbers they use (as listed in ''zspecial.acs'') are from the Hexen namespace. This is also to keep easy compatibility with ''zcommon.acs'', so there will be as little need as possible to rewrite the include files. | ||
{{Backto|Editing reference}} | {{Backto|Editing reference}} | ||
== Using ACS for your map == | == Using ACS for your map == | ||
ACS scripts can be loaded with Doom-format maps through the help of [[MapInfo|EMAPINFO]] and [[ExtraData]]. The MapInfo entry for the map needs at least a specifier for its ExtraData lump and compiled ACS lump (setting the '''extradata''' and '''acsscript''' entries). | |||
The script can be written in a text editor and compiled using acc. Wad tools like SLADE also have the capability to compile ACS scripts. After obtaining the behavior lump (usually with the .o extension), import it in a wad and place it between lumps '''A_START''' and '''A_END'''. The '''acsscript''' entry from EMAPINFO should then reference this compiled lump. | |||
''Important'': do not place the compiled ACS script as a BEHAVIOR lump after the level lumps, as it is done in Hexen-format maps. This will cause Eternity to assume your map is designed in the Hexen format (with such specified THINGS and LINEDEFS), despite it being in the Doom format, resulting in errors or unpredictable effects when loading the level. | |||
ACS scripts will be callable from map linedefs by using the parameterized script specials or the legacy non-parameterized specials which used to call FraggleScript or Small before they were removed. | |||
ACS scripts will be callable from map linedefs by using the parameterized script specials or the legacy non-parameterized specials | |||
== Calling ACS scripts from actor frames == | == Calling ACS scripts from actor frames == | ||
Eternity actors can call ACS scripts directly, by using the [[StartScript | Eternity actors can call ACS scripts directly, by using the [[StartScript]] codepointer. | ||
== Testing ACS scripts from console == | == Testing ACS scripts from console == | ||
Line 35: | Line 24: | ||
ACS scripts can be tested from the [[console]] by using the '''puke''' command. | ACS scripts can be tested from the [[console]] by using the '''puke''' command. | ||
== ACS details == | == ACS details == | ||
*[[ACS spawn IDs]] | *[[ACS spawn IDs]] | ||
*[[ACS built-in functions]] | *[[ACS built-in functions]] | ||
[[Category:Editing reference]] | [[Category:Editing reference]] |