Frictional Games Forum (read-only)

Full Version: "if" scripting
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have a problem with the if scripting...
My idea is that a room is patroled by a monster, but to keep the monstermusic from being played all the time, the monster only spawns when you touch the door. Then after a few minutes it goes inactive again because it is has no more pathnodes.

Now, when you pick up a note that says you have to go to the other side of the patroled room, the monster will be gone.

Here is my script:
void OnStart()
{
SetEntityPlayerInteractCallback("door_teacher1", "OnInteract1", false);

}


void OnInteract1(string &in asEntity)
{
if(HasItem("note3") == true)
{

}
else

SetEntityActive("monster_teacher1", true);
AddEnemyPatrolNode("monster_teacher1", "PathNodeArea_1", 1, "");
AddEnemyPatrolNode("monster_teacher1", "PathNodeArea_2", 1, "");
}

The problem is that the monster spawns even though i've got the note
Try this:

if(HasItem("note3") == true)
{
SetEntityActive("monster_teacher1", false);
}
More like

if(HasItem("note3"))

because the == true makes it if true then true
Nope still didnt... work...
I guess the script is setup so no matter what, it will run the script beneath "else" because the upper { and the lover } is connected. Then if i has the note it will first set the monster inactive, then set it active... i might try to do this with an area instead because the door will be buggy...
I guess i can just make the area go inactive then?
Does it give you errors or is it just not working?
If it always yields to else, then it is safe to conclude that HasItem cannot be used to determine whether the player has a specific note.
It works fine except the monster is still there