Making a lever puzzles... - 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: Making a lever puzzles... (/thread-24019.html) |
Making a lever puzzles... - Slanderous - 12-03-2013 Hey I was wondering how can I make a puzzle, that player pulls down four levers and then water entity disappears. I was trying with many scripts, but I can't get it to work. Can someone help me? RE: Making a lever puzzles... - FlawlessHappiness - 12-03-2013 You need to use variables. Variables work like this. You automaticly create one by writing: AddLocalVarInt("LeverPuzzle", 1). Now the variable is called "LeverPuzzle", and has the number 1. Now what you want is that each lever makes the variable go up. Each lever must call a callback called "LeverCallback". YOu write this in the ConnectionState in the entity's properties in the level editor.. Here is the script for the levers. void LeverPuzzle(string &in asEntity, int alState) { if(alState == 1) //If the levers are pulled a specific way. { AddLocalVarInt("LeverPuzzle", 1) } if(GetLocalVarInt("LeverPuzzle") == 4) //If the variable is 4, which means all levers are pulled. { SetEntityActive("WaterEntity", false); } } This is the simple version. RE: Making a lever puzzles... - Slanderous - 12-03-2013 (12-03-2013, 12:11 PM)FlawlessHair Wrote: You need to use variables. Oh, thanks for help I'm going to check it and I will let ya know if it works. It's not working Here is my script void OnStart() { AddLocalVarInt("LeverPuzzle", 1); AddEntityCollideCallback("Player", "questPrison", "GetSearchQuest", true, 1); AddEntityCollideCallback("Player", "ScriptArea_1", "GetRW", true, 1); } void GetSearchQuest(string &in asParent, string &in asChild, int alState) { AddQuest("memento05", "Memento05"); } void GetRW(string &in asParent, string &in asChild, int alState) { AddQuest("memento06", "Memento06"); } void LeverPuzzle(string &in asEntity, int alState) { if(alState == 1) //If the levers are pulled a specific way. { AddLocalVarInt("LeverPuzzle", 1); } if(GetLocalVarInt("LeverPuzzle") == 1) //If the variable is 4, which means all levers are pulled. { SetEntityActive("childsnake_floor_water_normal_1", false); } } It gives me a fatal error; 23,1 - expected ";" What should I do then? RE: Making a lever puzzles... - FlawlessHappiness - 12-03-2013 Try this. void OnStart() { AddEntityCollideCallback("Player", "questPrison", "GetSearchQuest", true, 1); AddEntityCollideCallback("Player", "ScriptArea_1", "GetRW", true, 1); } void GetSearchQuest(string &in asParent, string &in asChild, int alState) { AddQuest("memento05", "Memento05"); } void GetRW(string &in asParent, string &in asChild, int alState) { AddQuest("memento06", "Memento06"); } void LeverPuzzle(string &in asEntity, int alState) { if(alState == 1) { AddLocalVarInt("LeverPuzzle", 1); } if(alState == -1) { AddLocalVarInt("LeverPuzzle", -1); } if(GetLocalVarInt("LeverPuzzle") == 4) { if(GetLocalVarInt("LeverDone") == 1) { return; } SetEntityActive("childsnake_floor_water_normal_1", false); SetLocalVarInt("LeverDone", 1); } } RE: Making a lever puzzles... - Slanderous - 12-03-2013 (12-03-2013, 05:41 PM)FlawlessHair Wrote: Try this. It works now! Thanks ! Rep+ |