Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- oc=oc or function(f) return f end
- function regularNGon(n,scale,off)
- local points={}
- for i=0,n-1 do
- points[i+1]=Vector3.new(math.cos(2*math.pi*i/n+off),0,math.sin(2*math.pi*i/n+off))*scale
- end
- return points
- end
- function createRegularNGon(n,scale,centerP,off)
- local points=regularNGon(n,scale,off)
- local model=Instance.new("Model")
- for i,p1 in pairs(points) do
- local p2=points[i%n+1]
- local center=(p2+p1)/2
- local len=(p2-p1).magnitude
- local part=Instance.new("Part",model)
- part.FormFactor="Custom"
- part.Size=Vector3.new(0.2,0.2,len)
- part.Anchored=true
- part.CFrame=CFrame.new(center,p2)+centerP
- part.CanCollide=false
- end
- return model
- end
- local plr=game.Players.LocalPlayer
- local char=plr.Character
- local welds,dirs={},{}
- local function gWeld(p0,p1)
- local w=Instance.new("Weld",p0)
- w.Part0=p0
- w.Part1=p1
- w.C0=p0.CFrame:inverse()
- w.C1=p1.CFrame:inverse()
- return w
- end
- plr.Chatted:connect(oc(function(m)
- if not tonumber(m) then return end
- local sides=tonumber(m)
- local len=25
- local center=char.Torso.CFrame.p
- for i=1,15 do
- local newLen=len*((math.sqrt(2-2*math.cos((sides-2)*math.pi/sides)))/2)
- local ang=math.pi*i/sides
- local mod=createRegularNGon(sides,newLen,center,ang)
- mod.Parent=char
- len=newLen
- end
- end))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement