3gamers
Junior Member
Posts: 10
Threads: 6
Joined: Oct 2013
Reputation:
0
|
If HasItem Help
Have a script area set up in a dark room. When the Player enters the script area without the lantern in their inventory then I want to play the voice over warning the Player to turn around.
Conversely, if the Player has the lantern when entering the script area, I want the level door to 'unlock'.
Here is the script I have, I'm not sure if it will even work, but the only error I'm getting in 'Unexpected end of line'.
void OnStart()
{
AddEntityCollideCallback("Player", "ScriptArea_needlight", "Needlantern", "true", 1);
}
void Needlantern(string& asParentName, string& asChildName, string& asFunction, bool abDeleteOnCollide, int alStates)
{
if (bool HasItem"lantern")
{
SetLevelDoorLocked("leveldoortomain", false);
}
else if (bool HasItem"lantern")
{
PlaySoundAtEntity("", "VOICEOVERFILEHERE.ogg", "Player", 0, false);
}
}
Thankful for any comments.
|
|
05-29-2016, 08:08 PM |
|
Darkfire
Senior Member
Posts: 371
Threads: 22
Joined: May 2014
Reputation:
15
|
RE: If HasItem Help
You used the function "GetSomething" wrong. The "bool" means that the function will retrieve a true or false result. There are also "int" and "float" which are for numbers.
To work it should look like
if( HasItem("lantern") == true ) ///or if( HasItem("lantern") == false ) depending on what you want to do
{
///rest of stuff
}
|
|
05-29-2016, 09:21 PM |
|
TimProzz
Junior Member
Posts: 23
Threads: 8
Joined: May 2016
Reputation:
0
|
RE: If HasItem Help
Don't put "bool" in front of it. It's just there to show you what it returns. In this case a boolean.
if(HasItem("lantern") == true)
{
SetLevelDoorLocked("leveldoortomain", false);
} else {
PlaySoundAtEntity("", "VOICEOVERFILEHERE.ogg", "Player", 0, false);
}
|
|
06-02-2016, 10:39 AM |
|