| 
		
	
		| Storfigge   Member
 
 Posts: 101
 Threads: 31
 Joined: Sep 2012
 Reputation: 
0
 | 
			|  Script help. 
 
				I wonder how to make like. Let's say I have three collide areas. When I place a barrel in one area nothing happens, but then if I place one barrel in each collide area a door open. So with to open the door I must place an object in three different areas. How to do this   
 |  |  
	| 04-16-2013, 07:10 PM |  |  
	
		| Storfigge   Member
 
 Posts: 101
 Threads: 31
 Joined: Sep 2012
 Reputation: 
0
 | 
			| RE: Script help. 
 
				Just noticed that I posted this in the wrong place -.- I tried to delete it but it doesn't work.
			 
 |  |  
	| 04-16-2013, 08:21 PM |  |  
	
		| 7heDubz   Posting Freak
 
 Posts: 1,329
 Threads: 40
 Joined: Feb 2013
 Reputation: 
41
 | 
			| RE: Script help. 
 
				sounds like it would be a condition.. (If there is a barrel in these 3 area's then door will open) not sure how to do this though im a very basic scripter.
 As for the second a mod will move it (I'll PM statyk and let him know.)
 
 |  |  
	| 04-16-2013, 11:36 PM |  |  
	
		| Traggey   is mildly amused
 
 Posts: 3,257
 Threads: 74
 Joined: Feb 2012
 Reputation: 
185
 | 
			| RE: Script help. 
 
				Moved to development support.
			 |  |  
	| 04-17-2013, 01:03 AM |  |  
	
		| 7heDubz   Posting Freak
 
 Posts: 1,329
 Threads: 40
 Joined: Feb 2013
 Reputation: 
41
 | 
			| RE: Script help. 
 
				Thaaanks Traggey!
			 
 |  |  
	| 04-17-2013, 01:15 AM |  |  
	
		| Yare   Junior Member
 
 Posts: 22
 Threads: 2
 Joined: Mar 2013
 Reputation: 
0
 | 
			| RE: Script help. 
 
				I think it will be like this, step by step: SetLocalVarInt("BarrelCollisionCount", 0);
Just after "void OnStart/OnEnter" you declare a variable. It doesn't have to be "BarrelCollisionCount", name it as you wish.
 AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA1 NAME", "FUNCTION NAME", true, 1);AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA2 NAME", "FUNCTION NAME", true, 1);
 AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA3 NAME", "FUNCTION NAME", true, 1);
Here we add collide callback for 3 script areas. You can do it this way, though for more than 2 objects I usually use "for" loop.
 void FUNCTION NAME(string &in asParent, string &in asChild, int alState){
 AddLocalVarInt("BarrelCollisionCount", 1);
 if (GetLocalVarInt("BarrelCollisionCount")==3)
 {
 SetSwingDoorLocked("DOOR NAME", false, false);
 (And here put any other effects you would like to play. Maybe unlock sound, or something like that)
 }
 }
Every time the function is played, it adds 1 to the variable and checks if the variable equals 3. On the 3rd collision it should unlock the door.
			
				
(This post was last modified: 04-17-2013, 01:55 AM by Yare.)
 |  |  
	| 04-17-2013, 01:55 AM |  |  
	
		| PutraenusAlivius   Posting Freak
 
 Posts: 4,713
 Threads: 75
 Joined: Dec 2012
 Reputation: 
119
 | 
			| RE: Script help. 
 
				 (04-17-2013, 01:55 AM)Yare Wrote:  I think it will be like this, step by step:
 
 SetLocalVarInt("BarrelCollisionCount", 0);
Just after "void OnStart/OnEnter" you declare a variable. It doesn't have to be "BarrelCollisionCount", name it as you wish.
 
 
 AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA1 NAME", "FUNCTION NAME", true, 1);AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA2 NAME", "FUNCTION NAME", true, 1);
 AddEntityCollideCallback("BARREL NAME", "SCRIPTAREA3 NAME", "FUNCTION NAME", true, 1);
Here we add collide callback for 3 script areas. You can do it this way, though for more than 2 objects I usually use "for" loop.
 
 
 void FUNCTION NAME(string &in asParent, string &in asChild, int alState){
 AddLocalVarInt("BarrelCollisionCount", 1);
 if (GetLocalVarInt("BarrelCollisionCount")==3)
 {
 SetSwingDoorLocked("DOOR NAME", false, false);
 (And here put any other effects you would like to play. Maybe unlock sound, or something like that)
 }
 }
Every time the function is played, it adds 1 to the variable and checks if the variable equals 3. On the 3rd collision it should unlock the door.
 You put the SetLocalVarInt to the void OnStart() part. And if the Player must do all this to unlock a door, and if it locks again if no barrels are in place then you'll need another script.
			 
 "Veni, vidi, vici.""I came, I saw, I conquered."
 |  |  
	| 04-17-2013, 06:15 AM |  |  
	
		| Linus Ågren   Senior Member
 
 Posts: 309
 Threads: 58
 Joined: Jan 2011
 Reputation: 
5
 | 
			| RE: Script help. 
 
				Keep in mind that unless you make the barrels unmovable after it has been placed, the player can freely remove the barrels and still have the possibility to unlock the door. To avoid this, I would make three separate variables. For each of the areas the barrels are supposed to stand in, I would make sure that the alState of the collide area can be triggered both when inside, and outside of the box. When the barrel is inside the box, the variable would be set to 1 and when outside, it would be set back to 0.That way, the barrels must be inside the areas in order to unlock the door.
 
 Creator of The Dark Treasure. |  |  
	| 04-17-2013, 09:30 AM |  |  
	
		| Your Computer   SCAN ME!
 
 Posts: 3,456
 Threads: 32
 Joined: Jul 2011
 Reputation: 
235
 | 
			| RE: Script help. 
 
				The script provided satisfies what Storfigge wanted, since only one barrel is going to be used for the three areas anyway, not three barrels for three areas.
			 
 |  |  
	| 04-17-2013, 11:33 AM |  |  
	
		| Linus Ågren   Senior Member
 
 Posts: 309
 Threads: 58
 Joined: Jan 2011
 Reputation: 
5
 | 
			| RE: Script help. 
 
				Quote: but then if I place one barrel in each collide area a door open 
I went from that, which he implies that it is one for each collide, hence three barrels.
			 
 Creator of The Dark Treasure. |  |  
	| 04-17-2013, 02:38 PM |  |  |