Advertisement
Guest User

Bullet Drop and Raycasting

a guest
May 24th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. local rs = game:GetService('RunService').RenderStepped
  2.  
  3. local create = function(startPos, targetPos, ignore, limbs, drop)
  4. require(251791286)(startPos)
  5. local ray = Ray.new(
  6. startPos,
  7. ((targetPos - Vector3.new(0, -.4 * drop, 0)) - startPos).unit * 10
  8. )
  9.  
  10. local hit, pos = workspace:FindPartOnRay(ray, ignore)
  11.  
  12. if hit == nil or not limbs[hit.Name] or hit.CanCollide == false then
  13.  
  14. repeat
  15. rs:wait()
  16.  
  17. ray = Ray.new(
  18. pos,
  19. ((targetPos - Vector3.new(0, -.4 * drop, 0)) - pos).unit * 10
  20. )
  21.  
  22. require(251791286)(pos)
  23. hit, pos = workspace:FindPartOnRay(ray, ignore)
  24. require(251791286)(pos)
  25.  
  26. if hit ~= nil and limbs[hit.Name] then
  27. return hit, pos, hit.Parent:FindFirstChild('Humanoid')
  28. elseif hit ~= nil and hit.CanCollide then
  29. return hit, pos
  30. end
  31. until hit ~= nil and (hit.CanCollide ~= false or limbs[hit.Name]) or pos.Y < 100
  32.  
  33. elseif hit ~= nil and limbs[hit.Name] then
  34. return hit, pos, hit.Parent:FindFirstChild('Humanoid')
  35. elseif hit ~= nil and hit.CanCollide == true then
  36. return hit, pos
  37. end
  38. end
  39.  
  40. return create
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement