Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
printz

How do I make ACS scripts in Eternity?

Recommended Posts

How exactly do I make ACS scripts work in Eternity?

I know that:
- compiled ACS is referenced by EMAPINFO with 'acsscript' (but does it REALLY have to be between A_START and A_END when it's in a wad?)
- acc needs to be run with Hexen format (-h option) (still so?)

But: what about the header files? Such as specials.acs. I looked into it and it contains a list of numbers, special names and numbers of parameters. They are all of Hexen, and aren't the same as the Eternity parameterized specials, neither in special ID nor argument list. I tried changing a couple of them to fit into Eternity, but it didn't work. Do you have common.acs and the other, modified for Eternity?

Share this post


Link to post

The compiled acs does not need to be between wad markers. Compilation (by eg ACC from ZDoom website) is as normal, without the -h option. It's referenced in-game by the entry "acsscript = myscriptlump" in EMAPINFO under the appropriate [MAPxx] header. You use the zcommon.acs for your header file.

Eternity's ACS support is far from complete. Basic functions are present, most parameterized stuff is not.

Share this post


Link to post

So I can use the ZDoom header acs files then? But parameterized linedef types are currently not available in Eternity ACS?

Share this post


Link to post

Yes. And you'll have eg. "Door_Open" function available, but not "Generic_Door". Basically all Boom extensions are not there yet. I usually search EE's Github for the function name and see if it comes up.

Make sure to use the latest SVN builds. The initial implementation was pretty broken, but haven't managed to break stuff lately.

Share this post


Link to post
Mordeth said:

Yes. And you'll have eg. "Door_Open" function available, but not "Generic_Door". Basically all Boom extensions are not there yet. I usually search EE's Github for the function name and see if it comes up.

Yeah, because Generic_Door is not from the parameterized specials of Eternity. See the wiki documentation on them (Detailed parameterized linedef specification). You can update the article if you notice some new specials not listed there. I'm gonna try using ACC without "-h" and using unmodified ZDoom "zcommon.acs" and post again if I fail. But if it works, then it means the info on the wiki about ACS scripting may be outdated because it says "-h" is required.

Share this post


Link to post

It still doesn't work. The specials seem to be all wrong. I get errors of non-corresponding special sizes, or strange behaviour in the game. Do I need a "specials.acs" file with Eternity special bindings?

EDIT: it gave me error after putting all four parameters to Floor_RaiseToHighest. Putting just two worked. I know why; it's zspecials.acs. I suppose it uses the Hexen bindings of numbers to parameterized specials if it's ACS...

Floor_RaiseInstant doesn't seem to work properly...

Share this post


Link to post

Well, you're still basically compiling an ACS script for ZDoom, that happens to work in Eternity. Instead of a _RaiseInstant function, use a _RaiseByValue variant with the speed defined as 8x the total unit difference (which translates to 'instant').

You could also go to irc.oftc.net #noteternityenginerelated and pester DavidPH for details.

Edit: Forgot to mention: I'm still using #nocompact, since the initial implementation had some problems without it. Not really sure if that is still needed or not.

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
Sign in to follow this  
×