[SCRIPT] Light scripting - 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] Light scripting (/thread-25663.html) |
Light scripting - goodcap - 07-11-2014 Hello, what I want is that you push a button and then a light turns on and you hear a voice. And after the voice is done talking the light turns off again. How do I do this? RE: Light scripting - Rapture - 07-11-2014 Have you looked at the HPL2 wiki > Scripting Functions yet? https://wiki.frictionalgames.com/hpl2/amnesia/script_functions RE: Light scripting - goodcap - 07-11-2014 I have. But i can't find the func that disables a light after the voice is done RE: Light scripting - Daemian - 07-11-2014 SetLightVisible( light_name, true/false ); If the light it's an entity, use SetEntityActive( entity_name, true/false ); If you want the light to turn off after a sound it's over, calculate the time and use a timer, for a 10 seconds delay use this: AddTimer ( "light_name", 10, "TurnOffLight" ); This is the function the timer should call to turn off Code: void TurnOffLight ( string &in light ) If you're using AddEffectVoice you can use SetEffectVoiceOverCallback to set a function after the voice is over. RE: Light scripting - goodcap - 07-11-2014 (07-11-2014, 06:28 PM)Amn Wrote: SetLightVisible( light_name, true/false ); I tried the script without the voice. This is my script: void OnStart() { SetEntityCallbackFunc("knop", "PlayVoice"); } void PlayVoice(string &in asEntity, int alState) { SetLightVisible( "roomlight", true ); AddTimer ( "roomlight", 10, "TurnOffLight" ); { void TurnOffLight ( string &in light ) { SetLightVisible( "roomlight", false ); } } ------------------------ It tells me: ''unexpected end of file'' when I test the level. What did I do wrong? RE: Light scripting - Daemian - 07-11-2014 Extra } at the end. RE: Light scripting - goodcap - 07-11-2014 (07-11-2014, 06:49 PM)Amn Wrote: Extra } at the end. I did that, now it says: Expected { RE: Light scripting - Daemian - 07-11-2014 And you can remove the light name in the arguments if you're not going to use it. See, this timer AddTimer ( "roomlight", 10, "TurnOffLight" ); Is giving the name of your light (roomlight) to the function it's going to call (TurnOffLight function) Below, the function TurnOffLight, it has the name of your light in a variable named light. You can refer to that instead of typing in the name of the light. void TurnOffLight ( string &in light ) { SetLightVisible( light, false ); But whatever. As long as it works, it's ok. You can copy&paste this Code: void OnStart() |