(10-29-2013, 05:51 PM)3gamers Wrote: Thank you very much! Only it was a moot point as the code itself doesn't do what I want it too. Which brings up my next question: does anyone know how to code a level door so that it requires three keys to work?
This seems a bit complicated, and I'm not sure does it work, but it should:
-----------------------
void OnStart()
{
AddUseItemCallback("doorpuzzle1", "key1", "door1", "key1", true);
AddUseItemCallback("doorpuzzle2", "key2", "door1", "key2", true);
AddUseItemCallback("doorpuzzle3", "key3", "door1", "key3", true);
SetLocalVarInt("doorpuzzle", 0);
}
void OnEnter()
{
}
void OnLeave()
{
}
void key1(string &in asItem, string &in asEntity)
{
if(GetLocalVarInt("doorpuzzle" == 2)
{
SetLevelDoorLocked("door1", false);
}
else if(GetLocalVarInt("doorpuzzle" != 2)
{
AddLocalVarInt("doorpuzzle", 1);
}
}
void key2(string &in asItem, string &in asEntity)
{
if(GetLocalVarInt("doorpuzzle" == 2)
{
SetLevelDoorLocked("door1", false);
}
else if(GetLocalVarInt("doorpuzzle" != 2)
{
AddLocalVarInt("doorpuzzle", 1);
}
}
void key3(string &in asItem, string &in asEntity)
{
if(GetLocalVarInt("doorpuzzle" == 2)
{
SetLevelDoorLocked("door1", false);
}
else if(GetLocalVarInt("doorpuzzle" != 2)
{
AddLocalVarInt("doorpuzzle", 1);
}
}
------------------------------
That basically says, everytime you use 1 of these keys, it checks the VarInt. If it's already 2 (=you used 2 keys already and this is last) it unlocks the door. If it isn't 2 yet (=you haven't used 2 yet) it just adds one to the VarInt. So it's simple as that. And also, you can find codes here: wiki.frictionalgames.com/hpl2/amnesia/script_functions