Frictional Games Forum (read-only)
Script For Activating Point Lights? - 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 - Development (https://www.frictionalgames.com/forum/forum-38.html)
+---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html)
+---- Thread: Script For Activating Point Lights? (/thread-21396.html)



Script For Activating Point Lights? - FurtherGames - 05-04-2013

Are there any script codes to activate a point light once the player has collided with a script area?


RE: Script For Activating Point Lights? - FurtherGames - 05-04-2013

(05-04-2013, 05:47 PM)Robosprog Wrote: http://wiki.frictionalgames.com/hpl2/amnesia/script_functions

Yeah... I used the "void SetLightVisible(string& asLightName, bool abVisible);" command, but it doesn't work.


RE: Script For Activating Point Lights? - CarnivorousJelly - 05-04-2013

(05-04-2013, 05:57 PM)FurtherGames Wrote:
(05-04-2013, 05:47 PM)Robosprog Wrote: http://wiki.frictionalgames.com/hpl2/amnesia/script_functions

Yeah... I used the "void SetLightVisible(string& asLightName, bool abVisible);" command, but it doesn't work.

Make sure you typed in in correctly. If it's still not working, try this:

Keep all the lights active with a radius of 0 and use this function to change the radius to what you want:
Code:
FadeLightTo(string& asLightName, float afR, float afG, float afB, float afA, float afRadius, float afTime);
string& asLightName = "pointlight_whatever number yours is"
float afR = value you have on the red slider, with a decimal (eg 1.0f)
float afG = same as above but for green
float afB = same as above but for blue
float afA = same as above but for alpha
float afRadius = the you want your pointlight to change to (eg 3.0f)
float afTime = time, in seconds, for the change to take place (1.0f is 1 second)


RE: Script For Activating Point Lights? - FurtherGames - 05-04-2013

(05-04-2013, 06:04 PM)Kiandra Wrote:
(05-04-2013, 05:57 PM)FurtherGames Wrote:
(05-04-2013, 05:47 PM)Robosprog Wrote: http://wiki.frictionalgames.com/hpl2/amnesia/script_functions

Yeah... I used the "void SetLightVisible(string& asLightName, bool abVisible);" command, but it doesn't work.

Make sure you typed in in correctly. If it's still not working, try this:

Keep all the lights active with a radius of 0 and use this function to change the radius to what you want:
Code:
FadeLightTo(string& asLightName, float afR, float afG, float afB, float afA, float afRadius, float afTime);
string& asLightName = "pointlight_whatever number yours is"
float afR = value you have on the red slider, with a decimal (eg 1.0f)
float afG = same as above but for green
float afB = same as above but for blue
float afA = same as above but for alpha
float afRadius = the you want your pointlight to change to (eg 3.0f)
float afTime = time, in seconds, for the change to take place (1.0f is 1 second)

Do you use "SetEntityActive for lamps/candle sticks?


RE: Script For Activating Point Lights? - CarnivorousJelly - 05-04-2013

No, you would use
SetLampLit(string& asName, bool abLit, bool abEffects);

Unless you want the lamps to appear out of nowhere. Then SetEntityActive would be appropriate (for future reference, its what you would use to spawn the enemies)


RE: Script For Activating Point Lights? - FurtherGames - 05-04-2013

(05-04-2013, 06:13 PM)Kiandra Wrote: No, you would use
SetLampLit(string& asName, bool abLit, bool abEffects);

Unless you want the lamps to appear out of nowhere. Then SetEntityActive would be appropriate (for future reference, its what you would use to spawn the enemies)

Yeah, I thought so. I have one other question. Is there a way to change the colour of a point light? When you are changing the colour in the editor you can use the sliders?


RE: Script For Activating Point Lights? - CarnivorousJelly - 05-04-2013

(05-04-2013, 06:19 PM)FurtherGames Wrote:
(05-04-2013, 06:13 PM)Kiandra Wrote: No, you would use
SetLampLit(string& asName, bool abLit, bool abEffects);

Unless you want the lamps to appear out of nowhere. Then SetEntityActive would be appropriate (for future reference, its what you would use to spawn the enemies)

Yeah, I thought so. I have one other question. Is there a way to change the colour of a point light? When you are changing the colour in the editor you can use the sliders?

In the level editor: moving the sliders or typing in the exact value works
In script: FadeLightTo and change the afR, afG and afB values to something other than what you have in game

I used it on one of my maps to change the time of day:
Code:
if (GetGlobalVarInt("NightTriggered") == 0)
    {
        /////////////LIGHTS///////////
        FadeLightTo("PointLight_1", 0.017f, 0.060f, 0.092f, 0.010f, 2.50f, 180.0f);
        FadeLightTo("PointLight_2", 0.017f, 0.060f, 0.092f, 0.010f, 2.50f, 180.0f);
        FadeLightTo("PointLight_3", 0.053f, 0.058f, 0.071f, 0.150f, 4.50f, 180.0f);
        FadeLightTo("PointLight_4", 0.000f, 0.000f, 0.000f, 0.150f, 6.00f, 180.0f);
        FadeLightTo("PointLight_5", 0.000f, 0.000f, 0.000f, 0.150f, 6.00f, 180.0f);
        FadeLightTo("PointLight_6", 0.053f, 0.058f, 0.071f, 0.350f, 4.50f, 180.0f);
        FadeLightTo("PointLight_7", 0.053f, 0.058f, 0.071f, 0.350f, 2.50f, 180.0f);
        FadeLightTo("PointLight_8", 0.053f, 0.058f, 0.071f, 0.350f, 3.50f, 180.0f);
        FadeLightTo("PointLight_9", 0.000f, 0.000f, 0.000f, 0.350f, 6.00f, 180.0f);

And it keeps going and going all the way up to pointlight 30/spotlight 8

I would make a small room off to the side (disconnected from your map) to test the new light colours in. Just use the same static object set the rest of your map uses to ensure the colours look good.