[SCRIPT] Multipul Keys - Printable Version +- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum) +-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html) +--- Forum: Custom Stories, TCs & Mods - Development (https://www.frictionalgames.com/forum/forum-38.html) +---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html) +---- Thread: [SCRIPT] Multipul Keys (/thread-23738.html) |
Multipul Keys - 3gamers - 10-29-2013 Hey again, I'm trying to get it so that a door only opens when all three keys are used but it keeps giving me a fatal error: unexpected end of script. I'm not sure if my script even works but it wont even load so I can test it. Please someone look over it void OnStart() { AddUseItemCallback("", "key1", "MD1", "Keyfunction1", true); AddUseItemCallback("", "key2", "MD2", "Keyfunction2", true); AddUseItemCallback("", "key3", "MD3", "Keyfunction3", true); AddUseItemCallback("", "key4", "level_wood_3", "Keyfunction4", true); SetLocalVarInt("Var1", 0); SetEntityPlayerInteractCallback("dungeonkey1", "func1", true); SetEntityPlayerInteractCallback("dungeonkey2", "func2", true); SetEntityPlayerInteractCallback("dungeonkey3", "func3", true); void OnEnter() { } void OnLeave() { } void Keyfunction1(string &in item, string &in door) { SetSwingDoorLocked("MD1", false, true); PlayGuiSound("unlock_door.snt", 100); RemoveItem("key1"); } void Keyfunction2(string &in item, string &in door) { SetSwingDoorLocked("MD2", false, true); PlayGuiSound("unlock_door.snt", 100); RemoveItem("key2"); } void Keyfunction3(string &in item, string &in door) { SetSwingDoorLocked("MD3", false, true); PlayGuiSound("unlock_door.snt", 100); RemoveItem("key3"); } void Keyfunction4(string &in item, string &in door) { SetLevelDoorLocked("level_wood_3", false); PlayGuiSound("unlock_door.snt", 100); RemoveItem("key4"); } void func1(string &in asEntity) { AddLocalVarInt("Var1", 1); func4(); } void func2(string &in asEntity) { AddLocalVarInt("Var1", 1); func4(); } void func3(string &in asEntity) { AddLocalVarInt("Var1", 1); func4(); } void func4() { if(GetLocalVarInt("Var1") == 3) { SetLevelDoorLocked("level_wood_2", false); PlayGuiSound("unlock_door.snt", 100); RemoveItem("dungeonkey1"); RemoveItem("dungeonkey2"); RemoveItem("dungeonkey3"); } } RE: Multipul Keys - i3670 - 10-29-2013 You have not closed you OnStart void OnStart() { AddUseItemCallback("", "key1", "MD1", "Keyfunction1", true); AddUseItemCallback("", "key2", "MD2", "Keyfunction2", true); AddUseItemCallback("", "key3", "MD3", "Keyfunction3", true); AddUseItemCallback("", "key4", "level_wood_3", "Keyfunction4", true); SetLocalVarInt("Var1", 0); SetEntityPlayerInteractCallback("dungeonkey1", "func1", true); SetEntityPlayerInteractCallback("dungeonkey2", "func2", true); SetEntityPlayerInteractCallback("dungeonkey3", "func3", true); } RE: Multipul Keys - 3gamers - 10-29-2013 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? RE: Multipul Keys - Omenapuu - 10-29-2013 (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 RE: Multipul Keys - 3gamers - 10-29-2013 (10-29-2013, 09:43 PM)Omenapuu Wrote:(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? I put in your code and had to fix a couple of things like missing parathesis but now its giving me an error that I'm not sure how to fix or even what it means. I included a picture of the errors. Thank you so much for your help, I REALLY appreciate it. And I checked out the wiki and have been using it for other codes but I just couldn't find anything on this. RE: Multipul Keys - Omenapuu - 10-29-2013 (10-29-2013, 10:53 PM)3gamers Wrote:(10-29-2013, 09:43 PM)Omenapuu Wrote:(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? Oh, instead of ---- if(GetLocalVarInt("doorpuzzle" == 2) ---- type if(GetLocalVarInt("doorpuzzle") == 2 and ---- else if(GetLocalVarInt("doorpuzzle" != 2) ---- type if(GetLocalVarInt("doorpuzzle") != 2) That should help. But going to sleep now, hope it worked. RE: Multipul Keys - 3gamers - 10-29-2013 It worked beautifully thank you very very much! |