| 
		
	
		| TheIcyPickle   Member
 
 Posts: 80
 Threads: 16
 Joined: Feb 2011
 Reputation: 
0
 | 
			| Player Run Into Door, Explosion 
 
				Hey forum.
 Wondering if this were possible. I have an idea of how to script it, just not sure what to use.
 
 I'm trying to allow Player to ram himself into a locked door which is loose by the hinges to cause it to explode off.
 
 Currently, I am using AddEntityCollideCallback to have the player run into a script box that is close to the door that/for
 
 1) To activate the unlock sequence
 2) the explosion sequence
 3) If player is running.
 
 Going through the script functions page I found at first look, there is nothing of total use.
 
 
 Here is what I have thus far::
 
 void OnStart()
 {
 
 AddEntityCollideCallback("Player", "script3", "door", true, 1);
 
 }
 
 //then following...
 
 void door(string &in asParent, string &in asChild, int alState)
 {
 //Add if Player is running here
 CreateParticleSystemAtEntity("", "ps_impact_dust_low.ps", "script3", false);
 SetPropHealth("prison_1", 0.0f);
 SetSwingDoorLocked("prison_1", false, true);
 
 }
 
 This is all fine and dandy, it works,  but, I want this to happen IF player is running.
 
 I can't seem to find the right function to call for that if statement.
 
 Can you guys help me out?
 |  |  
	| 03-30-2013, 05:39 AM |  |  
	
		| PutraenusAlivius   Posting Freak
 
 Posts: 4,713
 Threads: 75
 Joined: Dec 2012
 Reputation: 
119
 | 
			| RE: Player Run Into Door, Explosion 
 
				You can create a condition.
			 
 "Veni, vidi, vici.""I came, I saw, I conquered."
 |  |  
	| 03-30-2013, 06:48 AM |  |  
	
		| NaxEla   Senior Member
 
 Posts: 415
 Threads: 5
 Joined: Dec 2012
 Reputation: 
28
 | 
			| RE: Player Run Into Door, Explosion 
 
				There's a function called GetPlayerSpeed()  that will return the players' speed.
 void door(string &in asParent, string &in asChild, int alState) {
 if(GetPlayerSpeed() > 10.0f) {   // you'll probably need to change 10 to a different number
 CreateParticleSystemAtEntity("", "ps_impact_dust_low.ps", "script3", false);
 SetPropHealth("prison_1", 0.0f);
 SetSwingDoorLocked("prison_1", false, true);
 }
 }
 
I'm not sure if a speed over 10 is running, so you'll need to do some testing to find the right number.
			
 |  |  
	| 03-30-2013, 07:42 AM |  |  
	
		| TheIcyPickle   Member
 
 Posts: 80
 Threads: 16
 Joined: Feb 2011
 Reputation: 
0
 | 
			| RE: Player Run Into Door, Explosion 
 
				 (03-30-2013, 06:48 AM)JustAnotherPlayer Wrote:  You can create a condition. 
Right, but could you recommend a function to use?
 
I understand that a condition needs to be inserted, like
 
if(insertcondition() = true)
 
//then
 
door unlocks.
 
But I'm not too sure which function to use.
 
EDIT 1: Thanks NaxEla, I will try that.
			 
				
(This post was last modified: 03-30-2013, 07:44 AM by TheIcyPickle.)
 |  |  
	| 03-30-2013, 07:43 AM |  |  
	
		| TheIcyPickle   Member
 
 Posts: 80
 Threads: 16
 Joined: Feb 2011
 Reputation: 
0
 | 
			| RE: Player Run Into Door, Explosion 
 
				Huh, I'm getting somewhere. If you put in 2.5f in place of the code, it breaks walking. 2.51f, it doent break walking or running. What is the appropriate number?  
Do I have to keep doing up by .001 now?
 
Or is there some other way? 
 
Thanks for the feedback so far btw    
EDIT 1: It appears 2.5000000000001f allows walking to work still. Take away a 0 and it doesn't work walking.  
This is rather weird.
			
				
(This post was last modified: 03-30-2013, 09:12 AM by TheIcyPickle.)
 |  |  
	| 03-30-2013, 09:01 AM |  |  
	
		| NaxEla   Senior Member
 
 Posts: 415
 Threads: 5
 Joined: Dec 2012
 Reputation: 
28
 | 
			| RE: Player Run Into Door, Explosion 
 
				I did some testing, and 2.75 works perfectly for me.
			 
 |  |  
	| 03-30-2013, 09:19 AM |  |  
	
		| TheIcyPickle   Member
 
 Posts: 80
 Threads: 16
 Joined: Feb 2011
 Reputation: 
0
 | 
			| RE: Player Run Into Door, Explosion 
 
				Ah, I think I see the problem. It appears that when I pass it walking, just to test, the if statement is terminated. It did not meet the criteria, and the script box is not of use anymore. 
 How would one go about re-looping I would guess the void door statement again?
 
 Or was what I said complete garbage? haha
 
 EDIT 1: AH HA!
 
 AddEntityCollideCallback("Player", "script3", "door", false, 1);
 
 
 Thats it.
 
 Thanks for the help everyone!
 
				
(This post was last modified: 03-30-2013, 09:46 AM by TheIcyPickle.)
 |  |  
	| 03-30-2013, 09:32 AM |  |  
	
		| PutraenusAlivius   Posting Freak
 
 Posts: 4,713
 Threads: 75
 Joined: Dec 2012
 Reputation: 
119
 | 
			| RE: Player Run Into Door, Explosion 
 
				 (03-30-2013, 07:42 AM)NaxEla Wrote:  There's a function called GetPlayerSpeed() that will return the players' speed.
 void door(string &in asParent, string &in asChild, int alState) {
 if(GetPlayerSpeed() > 10.0f) {   // you'll probably need to change 10 to a different number
 CreateParticleSystemAtEntity("", "ps_impact_dust_low.ps", "script3", false);
 SetPropHealth("prison_1", 0.0f);
 SetSwingDoorLocked("prison_1", false, true);
 }
 }
 
I'm not sure if a speed over 10 is running, so you'll need to do some testing to find the right number.
 
There is? Where is it? I can't see them in the Script Functions page.
			 
 "Veni, vidi, vici.""I came, I saw, I conquered."
 |  |  
	| 03-30-2013, 11:30 AM |  |  
	
		| FlawlessHappiness   Posting Freak
 
 Posts: 3,980
 Threads: 145
 Joined: Mar 2012
 Reputation: 
171
 | 
			| RE: Player Run Into Door, Explosion 
 
				![[Image: 2luvy46.png]](http://i47.tinypic.com/2luvy46.png) 
Ctrl+F my dear friend
			 
 Trying is the first step to success. |  |  
	| 03-30-2013, 12:35 PM |  |  
	
		| WALP   Posting Freak
 
 Posts: 1,221
 Threads: 34
 Joined: Aug 2012
 Reputation: 
45
 | 
			| RE: Player Run Into Door, Explosion 
 
				 (03-30-2013, 12:35 PM)BeeKayK Wrote:  ![[Image: 2luvy46.png]](http://i47.tinypic.com/2luvy46.png) Ctrl+F my dear friend
 
wow did not know my browser could do that
			 |  |  
	| 03-30-2013, 01:54 PM |  |  |