Frictional Games Forum (read-only)

Full Version: area problem
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I want to make two messages and the first message should never seen again, while only the second message should be shown after entering an area, which is inactive now

The code:

PHP Code:
void OnStart()
{
AddEntityCollideCallback("Player" "Area1" "A" true 1);
AddEntityCollideCallback("Player" "Area2" "C" true 1);
}


void A(string &in asParentstring &in asChildint alState)
{
    
SetEntityActive("object"true);
    
SetMoveObjectState("object"1.0);
    
PlaySoundAtEntity("""sound.snt""object"1.5ffalse);
    
SetMessage("Message""SampleText"4);
    
AddTimer(""4"Hand2");
}
    
void B(string &in asParentstring &in asChildint alState)    
{
     
SetEntityActive("Area2"true);
}

void C(string &in asParentstring &in asChildint alState)
{
     
PlaySoundAtEntity("""Sound.ogg""object"1.5f
     
SetMessage("Message2""SampleText"3);


but somehow the void C part is just ignoring. Why?
(03-03-2013, 09:47 PM)User01 Wrote: [ -> ]I want to make two messages and the first message should never seen again, while only the second message should be shown after entering an area, which is inactive now

The code:

PHP Code:
void OnStart()
{
AddEntityCollideCallback("Player" "Area1" "A" true 1);
AddEntityCollideCallback("Player" "Area2" "C" true 1);
}


void A(string &in asParentstring &in asChildint alState)
{
    
SetEntityActive("object"true);
    
SetMoveObjectState("object"1.0);
    
PlaySoundAtEntity("""sound.snt""object"1.5ffalse);
    
SetMessage("Message""SampleText"4);
    
AddTimer(""4"Hand2");
}
    
void B(string &in asParentstring &in asChildint alState)    
{
     
SetEntityActive("Area2"true);
}

void C(string &in asParentstring &in asChildint alState)
{
     
PlaySoundAtEntity("""Sound.ogg""object"1.5f
     
SetMessage("Message2""SampleText"3);


but somehow the void C part is just ignoring. Why?

Why is there a void B ? I don't see any of B being mention in the script. I think that's the problem.
(03-03-2013, 11:59 PM)No Author Wrote: [ -> ]
(03-03-2013, 09:47 PM)User01 Wrote: [ -> ]I want to make two messages and the first message should never seen again, while only the second message should be shown after entering an area, which is inactive now

The code:

PHP Code:
void OnStart()
{
AddEntityCollideCallback("Player" "Area1" "A" true 1);
AddEntityCollideCallback("Player" "Area2" "C" true 1);
}


void A(string &in asParentstring &in asChildint alState)
{
    
SetEntityActive("object"true);
    
SetMoveObjectState("object"1.0);
    
PlaySoundAtEntity("""sound.snt""object"1.5ffalse);
    
SetMessage("Message""SampleText"4);
    
AddTimer(""4"Hand2");
}
    
void B(string &in asParentstring &in asChildint alState)    
{
     
SetEntityActive("Area2"true);
}

void C(string &in asParentstring &in asChildint alState)
{
     
PlaySoundAtEntity("""Sound.ogg""object"1.5f
     
SetMessage("Message2""SampleText"3);


but somehow the void C part is just ignoring. Why?

Why is there a void B ? I don't see any of B being mention in the script. I think that's the problem.
Nope.avi
I did it like that and it was the same problem. I need a better way of script Sad
Pass false to the second collision callback.
(03-04-2013, 01:33 AM)Your Computer Wrote: [ -> ]Pass false to the second collision callback.
Do you mean
AddEntityCollideCallback("Player" , "Area2" , "C" , FALSE , 1); ?

I already tried that too and it didnt work.
(03-04-2013, 02:33 AM)User01 Wrote: [ -> ]
(03-04-2013, 01:33 AM)Your Computer Wrote: [ -> ]Pass false to the second collision callback.
Do you mean
AddEntityCollideCallback("Player" , "Area2" , "C" , FALSE , 1); ?

I already tried that too and it didnt work.

There is no collide callback that calls function "B", so Area2 is never set to active. Try this:

PHP Code:
void OnStart()
{
AddEntityCollideCallback("Player" "Area1" "A" true 1);
AddEntityCollideCallback("Player" "Area2" "C" false 1);
AddEntityCollideCallback("Player" "PUTSOMETHINGHERE" "B" true 1);
}


void A(string &in asParentstring &in asChildint alState)
{
    
SetEntityActive("object"true);
    
SetMoveObjectState("object"1.0);
    
PlaySoundAtEntity("""sound.snt""object"1.5ffalse);
    
SetMessage("Message""SampleText"4);
    
AddTimer(""4"Hand2");
}
    
void B(string &in asParentstring &in asChildint alState)    
{
     
SetEntityActive("Area2"true);
}

void C(string &in asParentstring &in asChildint alState)
{
     
PlaySoundAtEntity("""Sound.ogg""object"1.5ffalse);
     
SetMessage("Message2""SampleText"3);


You need to put in the area that you want the player to collide with to set Area2 active though. It's very confusing to try and see what you're doing though, so if this doesn't work explain again what the problem is.