FlawlessHappiness
Posting Freak
Posts: 3,980
Threads: 145
Joined: Mar 2012
Reputation:
171
[SOLVED] Unlock door with colliding object, Not working
So the idea is that you put a stone chipper inside a padlock (Which works fine).
Then you have to find an object, heavy enough, to throw at the stone chipper, to make the padlock break.
Now there is only one object in my map (so far) which could break it, and that is a brick, called "brick_1".
Here is how it should work with the script:
Here is the script:
Spoiler below!
void OnStart()
{
AddEntityCollideCallback("ScriptArea_4", "Player", "OnCollide_3", false, 1);
AddEntityCollideCallback("brick_1", "ScriptArea_3", "OnCollide_4", true, 1);
AddUseItemCallback("", "stone_chipper_1", "padlock_rusty_1", "UseStoneChipper", true);
}
///USE ITEMS
void UseStoneChipper(string &in asItem, string &in asEntity)
{
SetEntityActive("stone_chipper_move_1", true);
PlaySoundAtEntity("", "puzzle_place_jar", "ScriptArea_3", 0, false);
RemoveItem("stone_chipper_1");
}
///COLLIDES
void OnCollide_4(string &in asParent, string &in asChild, int alState)
{
AddPlayerSanity(5);
PlaySoundAtEntity("", "unlock_door", "prison_section_1", 0, false);
SetSwingDoorLocked("prison_section_1", false, true);
SetPropActiveAndFade("padlock_rusty_1", false, 1);
SetPropActiveAndFade("padlock_rusty_2", true, 1);
SetEntityActive("ScriptArea_4", false);
SetEntityActive("ScriptArea_3", false);
}
void OnCollide_3(string &in asParent, string &in asChild, int alState)
{
if(alState == 1)
{
SetEntityActive("ScriptArea_3", false);
}
if(alState == -1)
{
SetEntityActive("ScriptArea_3", true);
}
}
///PICKUP
void chipper_pickup(string &in asEntity)
{
SetEntityActive("ScriptArea_1", true);
SetEntityActive("block_box_1", true);
SetEntityActive("block_box_2", true);
}
///MESSAGES
void DoorLocked_1(string &in asEntity)
{
if(GetSwingDoorLocked("prison_2") == true)
{
SetMessage("Messages", "Locked", 0);
}
}
void DoorLocked_2(string &in asEntity)
{
if(GetSwingDoorLocked("prison_section_1") == true)
{
SetMessage("Messages", "PadlockDoorLocked", 0);
}
}
void DoorLocked_3(string &in asEntity)
{
if(GetSwingDoorLocked("padlock_rusty_1") == true)
{
SetMessage("Messages", "PadlockLocked", 0);
}
}
///INTERACT
void OnStonePickup(string &in asEntity)
{
SetLightVisible("PointLight_3", false);
}
void OnEnter()
{
}
void OnLeave()
{
}
Nothing happens when the brick collides with the script around the padlock... i can't figure out why
Trying is the first step to success.