| Author | 
            Message | 
        
        
			| 
				
				 Dylanhutch 
				
				
					 Joined: Sun Apr 25, 2010 12:04 am Posts: 303 Location: Australia
				 
				 
			 | 
			
				
				  Stopping things rotating.  
					
						How could I stop a craft rotating through Lua? I have tried this: Code: function Update(self)    self.AngularVel = 0    end It doesn't show any errors but doesn't work for some reason, I bet this is something incredibly simple. EDIT It's an ACRocket by the way.  
					
  
			 | 
		
		
			| Thu Jan 20, 2011 10:51 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 mail2345 
				
				
					 Joined: Tue Nov 06, 2007 6:58 am Posts: 2054
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						Not sure what you're looking for, but you probably want to disable both the MOVE_LEFT and MOVE_RIGHT controller states if you just want to prevent turning. If you really want to stop rotation, lock the rotation angle as well as velocity. 
					
  
			 | 
		
		
			| Fri Jan 21, 2011 1:55 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 Dylanhutch 
				
				
					 Joined: Sun Apr 25, 2010 12:04 am Posts: 303 Location: Australia
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						mail2345 wrote: Not sure what you're looking for, but you probably want to disable both the MOVE_LEFT and MOVE_RIGHT controller states if you just want to prevent turning. If you really want to stop rotation, lock the rotation angle as well as velocity. It is a drop crate class, so I don't need to prevent left and right controls, I need to stop it turning altogether. As in, make it only go straight down and straight up. EDIT How would I lock the rotation angle?  
					
  
			 | 
		
		
			| Fri Jan 21, 2011 2:03 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 mail2345 
				
				
					 Joined: Tue Nov 06, 2007 6:58 am Posts: 2054
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						self.RotAngle = <whatever, probably 0>
  Also, if I understand you correctly, you might want to lock X vel to 0(self.Vel.X = 0). 
					
  
			 | 
		
		
			| Fri Jan 21, 2011 3:47 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 Dylanhutch 
				
				
					 Joined: Sun Apr 25, 2010 12:04 am Posts: 303 Location: Australia
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						Thanks so much, It worked to perfection.
  Also, very offtopic and you probably won't know, but how would I make it switch control to the craft? 
					
  
			 | 
		
		
			| Fri Jan 21, 2011 4:43 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 mail2345 
				
				
					 Joined: Tue Nov 06, 2007 6:58 am Posts: 2054
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						On creation? ActivityMan:GetActivity():SwitchToActor(self,<player number>, self.Team) 
					
  
			 | 
		
		
			| Fri Jan 21, 2011 6:48 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 Dylanhutch 
				
				
					 Joined: Sun Apr 25, 2010 12:04 am Posts: 303 Location: Australia
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						Thanks, I'll be sure to credit you by the way. Here is the final script: Code: function Create(self) --Don't really need this since I can just edit the ini but anyway.     self.Vel.X = 0     self.Vel.Y = 10 end function Update(self) if UInputMan:KeyHeld(19) then --If "S" is held, move down at 10 velocity.    self.Health = 100            --Don't die either.     self.Vel.X = 0                     --No jiggling for you!     self.Vel.Y = 10                   --Move end if UInputMan:KeyHeld(23) then  --If "W" is held, explode.    self:GibThis(); end                                      --Ends "then" and "if" so that rotating can be stopped each frame.     self.RotAngle = 0            --Stops rotating.    self.Vel.X = 0    end                              --End mother****er.
 
  I took this from a whole lot of different mods I have made in the past and put it all together. It's for  this. 
					
  
			 | 
		
		
			| Fri Jan 21, 2011 7:09 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
			| 
				
				 Coops 
				
				
					 Joined: Wed Feb 17, 2010 12:07 am Posts: 1545 Location: That small peaceful place called Hell.
				 
				 
			 | 
			
				
				  Re: Stopping things rotating.  
					
						If you want this to be Gamepad friendly you should do it like this instead. Code: function Create(self) --Don't really need this since I can just edit the ini but anyway.     self.Vel.X = 0     self.Vel.Y = 10 end function Update(self) self.cont = self:GetController(); -- get controller if self.cont:IsState(Controller.BODY_CROUCH) then --If down is held, move down at 10 velocity.     self.Health = 100            --Don't die either.     self.Vel.X = 0                     --No jiggling for you!     self.Vel.Y = 10                   --Move end if self.cont:IsState(Controller.BODY_JUMPSTART) then  --If up is held, explode.    self:GibThis(); end                                      --Ends "then" and "if" so that rotating can be stopped each frame.     self.RotAngle = 0            --Stops rotating.    self.Vel.X = 0 end                              --End mother****er.
 
   
					
  
			 | 
		
		
			| Fri Jan 21, 2011 9:59 am | 
			
				
					 
					
					 
				  
			 | 
    	
		
	
	
		  | 
	
	
	
		 |