Facebook Twitter YouTube Frictional Games | Forum | Newsletter | Dev Blog | Dev Wiki | Support | Gametee


Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Need help with a script (again)
Author Message
Akasu Offline
Member

Posts: 62
Joined: Aug 2010
Reputation: 2
Post: #11
RE: Need help with a script (again)

That did it. Thanks for bothering Smile Always nice to learn stuff.

E: Yep. Definately works.
Final product
Spoiler below!
void OnStart ()
{
AddEntityCollideCallback("box1","area_red","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box1","area_green","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box1","area_blue","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box2","area_red","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box2","area_green","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box2","area_blue","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box3","area_red","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box3","area_green","BOX1LIGHT", false, 0);
AddEntityCollideCallback("box3","area_blue","BOX1LIGHT", false, 0);
SetLocalVarInt("RedLightOn", 1);
SetLocalVarInt("GreenLightOn", 1);
SetLocalVarInt("BlueLightOn", 1);
SetLightVisible("redy", false);
SetLightVisible("greeny", false);
SetLightVisible("bluey", false);
}

void BOX1LIGHT(string &in asParent, string &in asChild, int alState)
{
if(asChild == "area_red") {
if(GetLocalVarInt("RedLightOn") == 1) SetLocalVarInt("RedLightOn", 0);
else SetLocalVarInt("RedLightOn", 1);

if(GetLocalVarInt("RedLightOn") == 1) SetLightVisible("redy", false);
else SetLightVisible("redy", true);
}

if(asChild == "area_green") {
if(GetLocalVarInt("GreenLightOn") == 1) SetLocalVarInt("GreenLightOn", 0);
else SetLocalVarInt("GreenLightOn", 1);

if(GetLocalVarInt("GreenLightOn") == 1) SetLightVisible("greeny", false);
else SetLightVisible("greeny", true);

}

if(asChild == "area_blue") {
if(GetLocalVarInt("BlueLightOn") == 1) SetLocalVarInt("BlueLightOn", 0);
else SetLocalVarInt("BlueLightOn", 1);

if(GetLocalVarInt("BlueLightOn") == 1) SetLightVisible("bluey", false);
else SetLightVisible("bluey", true);
}
}
09-22-2010 09:25 PM
Find all posts by this user Quote this message in a reply
jens Offline
Frictional Games

Posts: 4,095
Joined: Apr 2006
Reputation: 202
Post: #12
RE: Need help with a script (again)

To simplify it, skip the LocalVars all together and use a better naming on your areas and light that way you can make this really simple.

void BOX1LIGHT(string &in asParent, string &in asChild, int alState)
{
    if(alState == 1)
    {
        SetLightVisible(asChild+"_light", true);
    }
    else if(alState == -1)
    {
        SetLightVisible(asChild+"_light", false);
    }
}

So you check the variable that tells you if something enters or leaves the area, that is alState.

Then if you name you lights the same as the area but suffix them with _light, you can use the variable with the name of the area to not write everything specific.

Example: Area is named "MyArea", you name the light "MyArea_Light", in the script you then use asChild+"_Light" which is the same as "MyArea_Light" because asChild is the variable containing what area it is that something entered into.
(This post was last modified: 09-23-2010 06:36 AM by jens.)
09-23-2010 06:34 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Akasu Offline
Member

Posts: 62
Joined: Aug 2010
Reputation: 2
Post: #13
RE: Need help with a script (again)

Well that is simple. I'll use it. Thanks.
Will keep the Pandemoneous's script somewhere in case I need to use local variables sometime.
09-23-2010 10:44 AM
Find all posts by this user Quote this message in a reply
MulleDK19 Offline
Senior Member

Posts: 545
Joined: Jun 2009
Reputation: 10
Post: #14
RE: Need help with a script (again)

void OnStart()
{
    SetLightVisible("redy", false);
    AddEntityCollideCallback("box1","area_red","BOX1RED", false, 0);
}

void BOX1RED(string &in asParent, string &in asChild, int alState)
{
    if(asChild == "area_red")
        SetLightVisible("redy", (alState > 0));
}

[Image: 16455.png]
09-23-2010 05:56 PM
Find all posts by this user Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)