Frictional Games Forum (read-only)
Possible to have a universal script for a custom story? - Printable Version

+- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum)
+-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html)
+--- Forum: Custom Stories, TCs & Mods (https://www.frictionalgames.com/forum/forum-35.html)
+--- Thread: Possible to have a universal script for a custom story? (/thread-6270.html)



Possible to have a universal script for a custom story? - Shev - 01-18-2011

As in a script thats always running for every level or something.

I was looking at how the scripts for levels work now, and it seems like they're only running when they're in the area so I'm basically asking is there a way to get a script thats always running in the background of the custom story?


RE: Possible to have a universal script for a custom story? - Nye - 01-18-2011

Sort of. You have to use global settings. You can't be running two scripts parralel to each other. However, you can set a global variable. Look at how the game devs did it. In the folder /maps/ of your custom story (or /maps/main/) in the real game, you should see/create a file called global.hps, you can save global variables here.

For example, when you leave an area, set a global variable named "area1left" to "1". Then, on returning to the area, ensure you have an if statement asking whether "area1left" is set to 1. If it's set to 1, the game shakes and the guardian spawns lots of slime everywhere and its all scary. Else, nothing happens, as it is the first time entering the area.

The syntax to use to set a global variable is:
void SetGlobalVarInt(string& asName, int alVal);

Where "string&asName" <---- is a name you choose for your global variable.
and int alVal <----- is the state you choose. In my example, it would be set to 1.

You can also do something similar for "localvariables", which are specific to just the local map.


RE: Possible to have a universal script for a custom story? - Shev - 01-18-2011

(01-18-2011, 11:14 AM)Nye Wrote: Sort of. You have to use global settings. You can't be running two scripts parralel to each other. However, you can set a global variable. Look at how the game devs did it. In the folder /maps/ of your custom story (or /maps/main/) in the real game, you should see/create a file called global.hps, you can save global variables here.

For example, when you leave an area, set a global variable named "area1left" to "1". Then, on returning to the area, ensure you have an if statement asking whether "area1left" is set to 1. If it's set to 1, the game shakes and the guardian spawns lots of slime everywhere and its all scary. Else, nothing happens, as it is the first time entering the area.

The syntax to use to set a global variable is:
void SetGlobalVarInt(string& asName, int alVal);

Where "string&asName" <---- is a name you choose for your global variable.
and int alVal <----- is the state you choose. In my example, it would be set to 1.

You can also do something similar for "localvariables", which are specific to just the local map.

Alright, thanks a lot.


RE: Possible to have a universal script for a custom story? - Rurikkur - 01-18-2011

Cool Big Grin That'll be really usefull Big Grin