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?
I have. But i can't find the func that disables a light after the voice is done
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 )
{ SetLightVisible( light, false ); }
If you're using
AddEffectVoice you can use
SetEffectVoiceOverCallback to set a function after the voice is over.
(07-11-2014, 06:28 PM)Amn Wrote: [ -> ]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 offCode:
void TurnOffLight ( string &in light )
{ SetLightVisible( light, false ); }
If you're using AddEffectVoice you can use SetEffectVoiceOverCallback to set a function after the voice is over.
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?
(07-11-2014, 06:49 PM)Amn Wrote: [ -> ]Extra } at the end.
I did that, now it says: Expected {
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()
{
SetEntityCallbackFunc("knop", "PlayVoice");
}
void PlayVoice(string &in asEntity, int alState)
{
SetLightVisible( "roomlight", true );
AddTimer ( "roomlight", 10, "TurnOffLight" );
}
void TurnOffLight ( string &in light )
{
SetLightVisible( light, false );
}