Hi. So i have one map where the front door is blocked from the inside, but there is a back entrence and in the house you can destroy the blockade and use the front door to get back out
But i can't find a way to make the outside door unlucked after the blockade is broken
Please help
Use SetSwingDoorLocked to unlock the door.
Perhaps you could use global variables. Here's a snippet of code where I'm almost doing the same exact thing:
Code:
void OnEnter()
{
AddTimer("SanityTimer", 0.5f, "UpdateSanity"); //Set up a timer on entry.
if(GetGlobalVarInt("lockdown") == 1)
{
SetSwingDoorLocked("metal_1", false, false);
AddEntityCollideCallback("Player", "ScriptArea_FinalWave", "FinalWave", true, 1);
}
}
Just need to set up a global variable that changes when the user removes the blockade. Upon entering the level with the exit, check and see if the global variable has changed. If it has, unlock the door.
What kind of blockade is it btw? since you can always use the built in PlayerInteractionCallback in the entity and then call SetSwingDoorLocked from there
(04-30-2012, 04:58 PM)FragdaddyXXL Wrote: [ -> ]Perhaps you could use global variables. Here's a snippet of code where I'm almost doing the same exact thing:
Code:
void OnEnter()
{
AddTimer("SanityTimer", 0.5f, "UpdateSanity"); //Set up a timer on entry.
if(GetGlobalVarInt("lockdown") == 1)
{
SetSwingDoorLocked("metal_1", false, false);
AddEntityCollideCallback("Player", "ScriptArea_FinalWave", "FinalWave", true, 1);
}
}
Just need to set up a global variable that changes when the user removes the blockade. Upon entering the level with the exit, check and see if the global variable has changed. If it has, unlock the door.
I wouldn't say right off that that wouldn't work cause im not good with the global variable thing infact i dont know what it actual do
But its 2 diffrent maps
that that in "Forest.map" the door is locked ((blocked from the inside) which is in AbandonedHouse.map)
And in AbandonedHouse.map the door is blocked so when the blockade is removed you can go outside into Forest.map but you can't go inside since the door is still locked :-)
(04-30-2012, 05:01 PM)SilentStriker Wrote: [ -> ]What kind of blockade is it btw? since you can always use the built in PlayerInteractionCallback in the entity and then call SetSwingDoorLocked from there
In the map editor Entities\gameplay\wooden_boards_block (the second last) :-)
Ok so then use the
SetLevelDoorLocked(string& asName, bool abLocked);
to unlock the level door. And if you press the blockade and in the entity tab you find PlayerInteractCallback use that to call a function when removing the blockade and then use the SetLevelDoorLocked code to unlock it
unless you use a hammer or something to remove the blockade then you just use the SetLevelDoorLocked inside the script you have to remove the blockade
hmm forgot about that the door in forest.hps have to be unlocked too.... hmm then you have to use a global variable. I can teach you how to use a global variable if you want
hah oh yeah please teach me
!
The door in the house is the not problem it's the one in the Forest :-)
Yes I realized that xD
ok so to make a global variable to work you need to make a global.hps file that you put inside your maps folder.
then inside the global.hps you write this
Code:
////////////////////////////
// Run at the start of the game.
void OnGameStart()
{
SetGlobalVarInt("NAMEOFVARIABLE", 0);}
then open your forest.hps and inside OnEnter() you write this:
Code:
void OnEnter()
{
if(GetGlobalVarInt("NAMETHEGLOBALVARIABLE") == 1)
{
SetLevelDoorLocked("NAMEOFLEVELDOOR", false);
}
else return;
}
then to make the global variable 1 since it was 0, you add this in the same function in AbandonedHouse.hps as the SetLevelDoorLocked code.
Code:
AddGlobalVarInt("NAMEOFTHEGLOBALVAR", 1);
I think I got everything ^^