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


Thread Rating:
  • 2 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I'm back, with a new custom story and another question! [SOLVED]
Karai16 Offline
Member

Posts: 164
Threads: 24
Joined: Apr 2011
Reputation: 0
#1
I'm back, with a new custom story and another question! [SOLVED]

Hey guys! I'm back after some time of not being here! ^^
I'm working on another custom story at the moment, but I'm facing some problems. You see:
void OnStart()
{
    SetEntityPlayerInteractCallback("OutsideDoor", "Checking", true);
    AddEntityCollideCallback("Player", "ScriptArea_1", "Checking2", true, 1);
}

void Checking(string &in asEntity)
{
    if (HasItem("Lantern")!=true)
    {
        SetMessage("Message", "OutsideDoorText", 0);
    }
}

void Checking2(string &in asParent , string &in asChild , int alState)
{
    if (HasItem("Lantern")==true)
    {
            SetLevelDoorLocked("OutsideDoor", false);
    }
}
This is the code of the Hallway. You can't go through a certain door as long as you don't have your lantern, which is in the bedroom. The lantern's called "Lantern". I've tested it, also with it just trying to play music instead of opening the door, but for some reason, it keeps saying that the second if statement is false, even if you have the lantern... can you help me out? I'm at a loss
Huh

Custom stories:
Her Games (100% Complete)
Her Games, All Bugs Fixed (100% Complete)
(This post was last modified: 07-27-2011, 04:16 PM by Karai16.)
07-25-2011, 05:08 PM
Find
Tanshaydar Offline
From Beyond

Posts: 3,085
Threads: 17
Joined: Mar 2009
Reputation: 67
#2
RE: I'm back, with a new custom story and another question!

HasItem("Lantern") == true

== true is unneeded here, as HasItem function is a boolean function.

This happened to someone else too. So, how about unlocking the level door on lantern pickup instead of checking if player has it?

07-25-2011, 06:38 PM
Website Find
Karai16 Offline
Member

Posts: 164
Threads: 24
Joined: Apr 2011
Reputation: 0
#3
RE: I'm back, with a new custom story and another question!

(07-25-2011, 06:38 PM)Tanshaydar Wrote: HasItem("Lantern") == true

== true is unneeded here, as HasItem function is a boolean function.

This happened to someone else too. So, how about unlocking the level door on lantern pickup instead of checking if player has it?

Well you see, lantern is picked up in another map, So that's why I can't unlock that door yet. But if there is a way, I'm all ears ofcourse.

Custom stories:
Her Games (100% Complete)
Her Games, All Bugs Fixed (100% Complete)
07-25-2011, 11:04 PM
Find
DRedshot Offline
Senior Member

Posts: 374
Threads: 23
Joined: Jun 2011
Reputation: 11
#4
RE: I'm back, with a new custom story and another question!

I found a workaround when i ran into this problem

if(HasItem("Lantern")){}
else{
// Unlock door
}

Smile

07-25-2011, 11:11 PM
Find
Karai16 Offline
Member

Posts: 164
Threads: 24
Joined: Apr 2011
Reputation: 0
#5
RE: I'm back, with a new custom story and another question!

(07-25-2011, 11:11 PM)DRedshot Wrote: I found a workaround when i ran into this problem

if(HasItem("Lantern")){}
else{
// Unlock door
}

Smile

Well the thing is, the door has to unlock when you do have the lantern. Also, I've tried something simular before, but it doesn't work either.

Custom stories:
Her Games (100% Complete)
Her Games, All Bugs Fixed (100% Complete)
07-25-2011, 11:32 PM
Find
DRedshot Offline
Senior Member

Posts: 374
Threads: 23
Joined: Jun 2011
Reputation: 11
#6
RE: I'm back, with a new custom story and another question!

ok, I dont fully understand what you're trying to do. If you want the door to unlock when you do have the lantern, this should work:

if(HasItem("Lantern")){
// Unlock Door
}

if that doesn't work, you may not have called it Lantern.

07-25-2011, 11:49 PM
Find
Roenlond Offline
Senior Member

Posts: 331
Threads: 3
Joined: Apr 2011
Reputation: 0
#7
RE: I'm back, with a new custom story and another question!

When you pick up the lantern in map 1, set a global variable to 1 and check if that variable is 1 when you click on the door.
07-25-2011, 11:51 PM
Find
Karai16 Offline
Member

Posts: 164
Threads: 24
Joined: Apr 2011
Reputation: 0
#8
RE: I'm back, with a new custom story and another question!

(07-25-2011, 11:51 PM)Roenlond Wrote: When you pick up the lantern in map 1, set a global variable to 1 and check if that variable is 1 when you click on the door.

Okay, I did that, but it still won't open the door... Here are the scripts:

Hallway: (The map where the game starts (atm) and where the door is that needs to be unlocked)
void OnGameStart()
{
    SetGlobalVarInt("LanternVar", 1);
}

void OnStart()
{
    SetEntityPlayerInteractCallback("OutsideDoor", "Checking", true);
    AddEntityCollideCallback("Player", "ScriptArea_1", "Checking2", true, 1);
}

void Checking(string &in asEntity)
{
    if (GetGlobalVarInt("LanternVar") != 2)
    {
        SetMessage("Message", "OutsideDoorText", 0);
    }
}

void Checking2(string &in asParent , string &in asChild , int alState)
{
    if (GetGlobalVarInt("LanternVar") == 2)
    {
            SetLevelDoorLocked("OutsideDoor", false);
    }
}

Bedroom: (The map where you get the lantern)
void OnStart()
{
    SetEntityPlayerInteractCallback("Lantern", "Setvar", true);
}

void Setvar(string &in asEntity)
{
    AddGlobalVarInt("LanternVar", 1);
}
and for the record, yes, I am sure I called the lantern "Lantern"... I tried, but the door still won't open. Huh

Custom stories:
Her Games (100% Complete)
Her Games, All Bugs Fixed (100% Complete)
07-26-2011, 10:15 PM
Find
Anxt Offline
Senior Member

Posts: 588
Threads: 12
Joined: Mar 2011
Reputation: 10
#9
RE: I'm back, with a new custom story and another question!

Ok, here's what you do:

Since you already have your GlobalVarInt set up, use an if statement in your hallway map to unlock the door. So, for example:

void OnEnter()
{
if(GetGlobalVarInt("LanternVar")==1)
{ SetLevelDoorLocked(blahblahblah);
}
}

Here's where I suspect the problem is: You have your LanternVar set to 1 at the start of the game. Set it to 0. Then, when you get the lantern, adding 1 to it will make it 1, thus making the function I have outlined for you above work properly. Hope that helped Smile

07-27-2011, 01:06 AM
Find
Karai16 Offline
Member

Posts: 164
Threads: 24
Joined: Apr 2011
Reputation: 0
#10
RE: I'm back, with a new custom story and another question!

(07-27-2011, 01:06 AM)Anxt Wrote: Ok, here's what you do:

Since you already have your GlobalVarInt set up, use an if statement in your hallway map to unlock the door. So, for example:

void OnEnter()
{
if(GetGlobalVarInt("LanternVar")==1)
{ SetLevelDoorLocked(blahblahblah);
}
}

Here's where I suspect the problem is: You have your LanternVar set to 1 at the start of the game. Set it to 0. Then, when you get the lantern, adding 1 to it will make it 1, thus making the function I have outlined for you above work properly. Hope that helped Smile

Thanks anxt! It's working completely fine now Smile

Custom stories:
Her Games (100% Complete)
Her Games, All Bugs Fixed (100% Complete)
07-27-2011, 04:15 PM
Find




Users browsing this thread: 2 Guest(s)