• Air strafe
    3 replies, posted
So basically on the server the air strafe is messed up. On deathrun when you 'circle jump' to fool the death it just doesn't work. You jump, turn, but when you turn you don't go forward to where you started, you just stop. Anyone know how to fix this?
sv_airaccelerate 1000 And before one of you smartasses tell me there's no difference above 150/300/750 AA, you need to learn to strafe.
[QUOTE=xaviergmail;44578509]sv_airaccelerate 1000 And before one of you smartasses tell me there's no difference above 150/300/750 AA, you need to learn to strafe.[/QUOTE] sv_airaccelerate 150 is all you need. Seriously, anything above that is just unnecessary. Besides, the higher the air acceleration, the easier it is, so I think you are the one who needs to learn how to strafe. EDIT: Here is some code from the STBase gamemode. Credits to Azuisleet for this section. [code] --------------------------------------- --------------------------------------- -- Azuisleet -> sv_airaccelerate function GM:AirAccelerate(Move, current, wishdir, wishspeed, accel) local wishspd = wishspeed wishspd = math.Clamp(wishspd, 0, 30) local addspeed = wishspd - current if(addspeed <= 0) then return end local accelspeed = accel * wishspeed * FrameTime() if(accelspeed > addspeed) then accelspeed = addspeed end Move:SetVelocity(Move:GetVelocity() + (wishdir * accelspeed)) end --------------------------------------- function GM:Move(ply, Move) if(SERVER) then self:AFKCommand(ply) end local aim = Move:GetMoveAngles() local forward, right = aim:Forward(), aim:Right() local fmove = Move:GetForwardSpeed() local smove = Move:GetSideSpeed() forward.z, right.z = 0,0 forward:Normalize() right:Normalize() local wishvel = forward * fmove + right * smove wishvel.z = 0 local wishspeed = wishvel:Length() if(wishspeed > Move:GetMaxSpeed()) then wishvel = wishvel * (Move:GetMaxSpeed()/wishspeed) wishspeed = Move:GetMaxSpeed() end local wishdir = wishvel:GetNormal() local current = Move:GetVelocity():Dot(wishdir) if(ply:IsOnGround()) then if(self.svAccelerate != 0) then self:Accelerate(Move, current, wishdir, wishspeed, self.svAccelerate) end -- if(self.SlowJumpLanding) then -- if(ply.WasInAir) then -- if(ply.WasInAir >= CurTime()) then -- Move:SetVelocity(Move:GetVelocity() * 0.5) -- else -- ply.WasInAir = nil -- end -- end -- end else if(self.svAirAccelerate != 0) then self:AirAccelerate(Move, current, wishdir, wishspeed, self.svAirAccelerate) end -- if(self.SlowJumpLanding) then -- ply.WasInAir = CurTime() + 0.6 -- end end if(self.OnMove) then self:OnMove(ply, Move) end end [/code]
The point with 1000 AA is that you have complete control while in the air, which is great for deathrun.
Sorry, you need to Log In to post a reply to this thread.