ACS_NamedExecuteAlways
bool ACS_NamedExecuteAlways (string script, int map, int s_arg1, int s_arg2, int s_arg3)
ACS_NamedExecuteAlways (string script, int map, int s_arg1, int s_arg2, int s_arg3)
Usage
Variant of ACS_ExecuteAlways for named scripts.
There is both an ACS and a DECORATE version of this function. Both behave identically.
However, it is not available as an action special: to call named scripts from a a line or thing special, you have to use the non-named variant (ACS_ExecuteAlways) in UDMF, with the arg0str custom argument set to the name of the script — this will override the first parameter.
Parameters
- script: Name of the script to execute
- map: Map which contains the script
- s_arg1: First argument passed to the script
- s_arg2: Second argument passed to the script
- s_arg3: Third argument passed to the script
Return value
Returns true if the script could be executed successfully, false otherwise. Deferred scripts are always considered successful.
Examples
This example gives a one-time full heal to a player when nearly dead, if the player picked a special item. The item runs the script, while the script monitors players status and activates when players health is reduced to 1.
Decorate Item:
Actor AvoidDeath : CustomInventory { Inventory.MaxAmount 0 +INVENTORY.AUTOACTIVATE States { Use: TNT1 A 0 ACS_NamedExecuteAlways("AvoidDeathScript", 0) Stop } }
ACS Script:
script "AvoidDeathScript" (void) { SetPlayerProperty(0, 1, PROP_BUDDHA); // Sets buddha mode for player while(1) // Permanent Loop { if(GetActorProperty(0, APROP_HEALTH) <= 1) // Checks if the player is wounded enough to heal { SetPlayerProperty(0, 0, PROP_BUDDHA); // Remove the buddha mode GiveInventory("Health", 100); // and heal the player terminate; } delay(1); } }