Regarding ACS/ZScript compatibility and expansion

Ask about ACS, DECORATE, ZScript, or any other scripting questions here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
surfacing
Posts: 2
Joined: Sat Oct 05, 2024 10:44 am
Operating System Version (Optional): 11

Regarding ACS/ZScript compatibility and expansion

Post by surfacing »

I'm working on fixing up an older total conversion someone else made. I have a clear vision of what it'll look like, and I know it'll be a long, arduous journey - I'm okay with that and am willing to see it through. However, the majority of the mod was written via Decorate and ACS. I've been mulling over documentation for both, as well as ZScript, and am starting to think that what I want to achieve is (probably) only possible through the latter option.

The main challenge I'm facing involves a feature that's currently absent from the mod. Ideally, the player should be able to transform into a third-person entity with unique stats at the press of a button, and just as easily revert back. Additionally, this entity should inherit various effects related to gravity, swimming, and other abilities that the player has acquired as upgrades throughout the game. This feature is crucial, and simultaneously the most difficult to achieve - everything else depends on it.

Again, while I've looked over documentation, I'm not entirely positive that I can use Decorate/ACS/ZScript in conjunction with one another in this situation.

I'm open to experimentation and have been making attempts, but I just want some advice regarding which direction I should set sail - I don't want my focus diverted in the wrong direction for too long. Thanks! :D
GrayFace
Posts: 29
Joined: Mon Feb 13, 2023 1:34 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 7 x64
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Regarding ACS/ZScript compatibility and expansion

Post by GrayFace »

While it's possible to actually transform the player to a different class temporarily using PowerMorph, it sounds like approach Project Brutality 2.03 uses for revenant transformation would suit you better. It implements it in player pawn, showing the right graphics depending on whether the player is transformed, also checking if transformation was triggered.
Transformation key reaction can be done as an ACS function with NET attribute similar to those setting Kicking/Taunting/etc. in COMMANDS.txt from Project Brutality 2.03 or Brutal Doom.
3rd person view can also be done based on CHASECAM from PB 2.03 or BD or similar.
Combining Decorate/ACS/ZScript is fine, there's ScriptCall for calls from Decorate/ASC to ZScript and CallACS and similar for calls to ACS.
surfacing
Posts: 2
Joined: Sat Oct 05, 2024 10:44 am
Operating System Version (Optional): 11

Re: Regarding ACS/ZScript compatibility and expansion

Post by surfacing »

GrayFace wrote: Wed Oct 09, 2024 5:56 pm While it's possible to actually transform the player to a different class temporarily using PowerMorph, it sounds like approach Project Brutality 2.03 uses for revenant transformation would suit you better. It implements it in player pawn, showing the right graphics depending on whether the player is transformed, also checking if transformation was triggered.
Transformation key reaction can be done as an ACS function with NET attribute similar to those setting Kicking/Taunting/etc. in COMMANDS.txt from Project Brutality 2.03 or Brutal Doom.
3rd person view can also be done based on CHASECAM from PB 2.03 or BD or similar.
Combining Decorate/ACS/ZScript is fine, there's ScriptCall for calls from Decorate/ASC to ZScript and CallACS and similar for calls to ACS.
Thanks for the response. I've decided to convert important code over to Zscript. Right now I'm trying to get the morphing part down, so I'll check out the Revenant transformation code you mentioned.
User avatar
SPZ1
Posts: 367
Joined: Wed Aug 02, 2017 3:01 pm
Location: Illinois

Re: Regarding ACS/ZScript compatibility and expansion

Post by SPZ1 »

You could make an ACS library script where MorphActor() and UnMorphActor() are toggled and make a keyboard bind to that script using KEYCONF

Return to “Scripting”