View difference between Paste ID: ZQWVaC2X and CjReWLMd
SHOW: | | - or go back to the newest paste.
1-
local man = workspace.man22
1+
local man = workspace.lafur2
2
local root = man.HumanoidRootPart
3
local viewp = Instance.new("Part",man)
4
viewp.Material = "Neon"
5
6
for i = 1,30*15 do
7
	local normal,hitp do
8
		local ray = Ray.new(root.Position,root.CFrame.upVector * -40)
9
		local _,hitpos,norm = workspace:FindPartOnRay(ray,man)
10
		normal = norm
11
		hitp = hitpos
12
	end
13
	
14
	-- the character's upvector will be the normal
15
	-- the character's lookvector will stay the same
16
	-- the character's rightvector will be upvector:cross(normal)
17
	local upvec = normal
18
	local lookvec = root.CFrame.lookVector
19
	local rightvec = normal:Cross(lookvec)
20
21
	-- construct a new cframe from the right, up, & lookvectors
22
	local trgcf = CFrame.fromMatrix(root.Position, rightvec,upvec,lookvec)
23
	viewp.CFrame = (trgcf-trgcf.p) + hitp + normal*.5
24
	-- convert it to object space, so it can be used in C1
25
	local nu_cf = root.CFrame:ToObjectSpace(trgcf)
26
	
27
	-- C0 needs to be reset first!!!
28
	root.RootJoint.C0 = CFrame.new()
29
	-- now, set C1 & see what happens
30
	root.RootJoint.C1 = nu_cf
31
	wait()
32
end
33
34
viewp:Destroy()
35
print("ended")