SHOW:
|
|
- or go back to the newest paste.
1 | - | -- // Old(super old) script by wulfbug9. |
1 | + | --https://github.com/Mokiros/roblox-FE-compatibility |
2 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
3 | local Player,game,owner = owner,game | |
4 | local RealPlayer = Player | |
5 | do print("FE Compatibility code V2 by Mokiros")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end -- // Old(super old) script by wulfbug9. | |
6 | -- // Cheap brock-copy, made while RMDX was making his :^) | |
7 | -- // Yeaaaah, Cuddles ftw :> | |
8 | ||
9 | function Part(Name,Parent,Size,CFrame,Color,Trans,Anch,Can,Mat,Ref) | |
10 | local p = Instance.new("Part",Parent) | |
11 | p.Name = Name | |
12 | p.FormFactor = "Custom" | |
13 | p.Size = Size | |
14 | p.Anchored = Anch | |
15 | p.CFrame = CFrame | |
16 | p.BrickColor = BrickColor.new(Color) | |
17 | p.Transparency = Trans | |
18 | p.TopSurface = 0 | |
19 | p.CanCollide = Can | |
20 | p.BottomSurface = 0 | |
21 | p.Material = Mat | |
22 | p.Reflectance = Ref or 0 | |
23 | p:BreakJoints() | |
24 | return p | |
25 | end | |
26 | function Mesh(Parent,Type,Scale,Id,Id2) | |
27 | local m = Instance.new("SpecialMesh",Parent) | |
28 | m.MeshType = Type | |
29 | m.Scale = Scale or Vector3.new(1,1,1) | |
30 | if Id then | |
31 | m.MeshId = Id | |
32 | pcall(function()m.TextureId = Id2 end) | |
33 | end | |
34 | return m | |
35 | end | |
36 | function Weld(p1,p2,c0,c1) | |
37 | local w = Instance.new("Weld",p1.Parent) | |
38 | w.Part0,w.Part1 = p1,p2 | |
39 | w.C0,w.C1 = c0 or CFrame.new(),c1 or CFrame.new() | |
40 | return w | |
41 | end | |
42 | function lerp(a,b,c) | |
43 | return a+(b-a)*c | |
44 | end | |
45 | do | |
46 | local function QuaternionFromCFrame(cf) | |
47 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() | |
48 | local trace = m00 + m11 + m22 | |
49 | if trace > 0 then | |
50 | local s = math.sqrt(1 + trace) | |
51 | local recip = 0.5/s | |
52 | return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 | |
53 | else | |
54 | local i = 0 | |
55 | if m11 > m00 then | |
56 | i = 1 | |
57 | end | |
58 | if m22 > (i == 0 and m00 or m11) then | |
59 | i = 2 | |
60 | end | |
61 | if i == 0 then | |
62 | local s = math.sqrt(m00-m11-m22+1) | |
63 | local recip = 0.5/s | |
64 | return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip | |
65 | elseif i == 1 then | |
66 | local s = math.sqrt(m11-m22-m00+1) | |
67 | local recip = 0.5/s | |
68 | return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip | |
69 | elseif i == 2 then | |
70 | local s = math.sqrt(m22-m00-m11+1) | |
71 | local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip | |
72 | end | |
73 | end | |
74 | end | |
75 | local function QuaternionToCFrame(px, py, pz, x, y, z, w) | |
76 | local xs, ys, zs = x + x, y + y, z + z | |
77 | local wx, wy, wz = w*xs, w*ys, w*zs | |
78 | local xx = x*xs | |
79 | local xy = x*ys | |
80 | local xz = x*zs | |
81 | local yy = y*ys | |
82 | local yz = y*zs | |
83 | local zz = z*zs | |
84 | return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) | |
85 | end | |
86 | local function QuaternionSlerp(a, b, t) | |
87 | local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] | |
88 | local startInterp, finishInterp; | |
89 | if cosTheta >= 0.0001 then | |
90 | if (1 - cosTheta) > 0.0001 then | |
91 | local theta = math.acos(cosTheta) | |
92 | local invSinTheta = 1/math.sin(theta) | |
93 | startInterp = math.sin((1-t)*theta)*invSinTheta | |
94 | finishInterp = math.sin(t*theta)*invSinTheta | |
95 | else | |
96 | startInterp = 1-t | |
97 | finishInterp = t | |
98 | end | |
99 | else | |
100 | if (1+cosTheta) > 0.0001 then | |
101 | local theta = math.acos(-cosTheta) | |
102 | local invSinTheta = 1/math.sin(theta) | |
103 | startInterp = math.sin((t-1)*theta)*invSinTheta | |
104 | finishInterp = math.sin(t*theta)*invSinTheta | |
105 | else | |
106 | startInterp = t-1 | |
107 | finishInterp = t | |
108 | end | |
109 | end | |
110 | return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp | |
111 | end | |
112 | function clerp(a,b,t) | |
113 | local qa = {QuaternionFromCFrame(a)} | |
114 | local qb = {QuaternionFromCFrame(b)} | |
115 | local ax, ay, az = a.x, a.y, a.z | |
116 | local bx, by, bz = b.x, b.y, b.z | |
117 | local _t = 1-t | |
118 | return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) | |
119 | end | |
120 | end | |
121 | --------------------------------------------- | |
122 | player = game:service("Players").LocalPlayer | |
123 | local char | |
124 | repeat wait() char = player.Character until char | |
125 | root = char:WaitForChild("HumanoidRootPart") | |
126 | mouse = player:GetMouse() | |
127 | step = game:service("RunService").Stepped | |
128 | Mode = "" | |
129 | Attacking = false | |
130 | CurAttack = "" | |
131 | asset = "http://www.roblox.com/asset/?id=" | |
132 | meshes = {["blast"] = 20329976,["ring"] = 3270017,["spike"] = 1033714,["cone"] = 1082802,["crown"] = 20329976,["cloud"] = 1095708,["diamond"] = 9756362} | |
133 | sounds = {["gun"] = 131070686;}-- | |
134 | parts = {} | |
135 | Dead = false | |
136 | Down = false | |
137 | Respawned = false | |
138 | mCombo = {{"Ice","Light blue"},{"Marble","Grey"},{"Brick",Color3.new(97/255,0,0)}} | |
139 | maxhealthdefault = 5000 | |
140 | maxhealth = 5000 -- default | |
141 | lastRespawnTime = tick() | |
142 | minRespawnTime = 20 | |
143 | firstTime = true | |
144 | headm,headt = "http://www.roblox.com/asset/?id=15881174","http://www.roblox.com/asset/?id=15881163" | |
145 | name = "Cuddles" | |
146 | scale = 8 | |
147 | --------------------------------------------- | |
148 | cf = CFrame.new | |
149 | ca = CFrame.fromEulerAnglesXYZ | |
150 | ms = math.sin | |
151 | mr = math.rad | |
152 | pi = math.pi | |
153 | ma = math.abs | |
154 | mcs = math.cos | |
155 | v3 = Vector3.new | |
156 | c3 = Color3.new | |
157 | bc = BrickColor.new | |
158 | function rand(a) | |
159 | return (math.random()-.5)*2*a | |
160 | end | |
161 | function Smoke(origin,dmg,color) | |
162 | local partz = Instance.new("Part",workspace) | |
163 | partz.Size = Vector3.new(0,0,0) | |
164 | partz.FormFactor = "Custom" | |
165 | partz.BrickColor = bc(color or "Black") | |
166 | partz.CanCollide = false | |
167 | partz.TopSurface,partz.BottomSurface = 0,0 | |
168 | partz.Transparency = 0.25 | |
169 | partz.CFrame = origin * cf(math.random(-5,5),-1,math.random(-5,5)) | |
170 | partz:BreakJoints() | |
171 | local meshz = Instance.new("SpecialMesh",partz) | |
172 | meshz.MeshType = "Sphere" | |
173 | meshz.Scale = v3(1.25,1.25,1.25) | |
174 | local bpz = Instance.new("BodyPosition",partz) | |
175 | bpz.D = 100 | |
176 | bpz.P = 100 | |
177 | bpz.position = partz.Position + Vector3.new(0,7,0) | |
178 | coroutine.resume(coroutine.create(function(partzz,meshzz) | |
179 | for i=25,100 do | |
180 | partzz.Transparency = i*0.01 | |
181 | meshzz.Scale = meshzz.Scale + Vector3.new(0.15,0.1,0.15) | |
182 | wait() | |
183 | end | |
184 | partz:Destroy() | |
185 | end),partz,meshz) | |
186 | end | |
187 | function brickMagic(origin,color,size) | |
188 | local partz = Instance.new("Part",workspace) | |
189 | partz.Size = v3(size,size,size) | |
190 | partz.FormFactor = "Custom" | |
191 | partz.BrickColor = bc(color) | |
192 | partz.CanCollide = false | |
193 | partz.Anchored = true | |
194 | partz.TopSurface,partz.BottomSurface = 0,0 | |
195 | partz.Transparency = 0.2 | |
196 | partz.CFrame = (origin * cf(0,-1,0)) * ca(math.random(0,5),math.random(0,5),math.random(0,5)) | |
197 | partz:BreakJoints() | |
198 | local meshz = Instance.new("BlockMesh",partz) | |
199 | meshz.Scale = v3(1,1,1) | |
200 | coroutine.resume(coroutine.create(function(partzz,m) | |
201 | for i=2,10 do | |
202 | partzz.CFrame = partzz.CFrame * ca(math.random(0,5),math.random(0,5),math.random(0,5)) | |
203 | partzz.Transparency = i*0.1 | |
204 | m.Scale = m.Scale-Vector3.new(.125,.125,.125) | |
205 | wait() | |
206 | end | |
207 | partzz:Destroy() | |
208 | end),partz,meshz) | |
209 | end | |
210 | function spikeMagic(origin,size,color) | |
211 | local partz = Instance.new("Part",workspace) | |
212 | partz.FormFactor = "Custom" | |
213 | partz.Size = v3(1,1,1) | |
214 | partz.BrickColor = bc(color) | |
215 | partz.CanCollide = false | |
216 | partz.Anchored = true | |
217 | partz.TopSurface,partz.BottomSurface = 0,0 | |
218 | partz.Transparency = 0.2 | |
219 | partz.CFrame = (origin * cf(0,-1,0)) | |
220 | partz:BreakJoints() | |
221 | local meshz = Instance.new("FileMesh",partz) | |
222 | meshz.MeshId = asset..meshes["spike"] | |
223 | meshz.Scale = Vector3.new(size/2,size*2,size/2) | |
224 | coroutine.resume(coroutine.create(function(partzz,m) | |
225 | wait(math.random(4,5)) | |
226 | for i=0.2,1,.025 do | |
227 | partzz.Transparency = i | |
228 | wait() | |
229 | end | |
230 | partzz:Destroy() | |
231 | end),partz,meshz) | |
232 | end | |
233 | function ringExplode(origin,color,size) | |
234 | local partz = Instance.new("Part",workspace) | |
235 | partz.FormFactor = "Custom" | |
236 | partz.Size = v3(size,size,1) | |
237 | partz.BrickColor = bc(color) | |
238 | partz.CanCollide = false | |
239 | partz.Anchored = true | |
240 | partz.TopSurface,partz.BottomSurface = 0,0 | |
241 | partz.Transparency = 0.2 | |
242 | partz.CFrame = (origin * cf(0,-1,0)) | |
243 | partz:BreakJoints() | |
244 | local meshz = Instance.new("FileMesh",partz) | |
245 | meshz.MeshId = asset..meshes["ring"] | |
246 | coroutine.resume(coroutine.create(function(partzz,m) | |
247 | for i=0.2,1,.025 do | |
248 | partzz.Transparency = i | |
249 | m.Scale = m.Scale + v3(.5,.5,0) | |
250 | wait() | |
251 | end | |
252 | partzz:Destroy() | |
253 | end),partz,meshz) | |
254 | end | |
255 | function placeRock(origin,size) | |
256 | local partz = Instance.new("Part",workspace) | |
257 | partz.Size = v3(size,size,size) | |
258 | partz.FormFactor = "Custom" | |
259 | partz.BrickColor = bc("Grey") | |
260 | partz.Material = "Marble" | |
261 | partz.CanCollide = true | |
262 | partz.Anchored = true | |
263 | partz.TopSurface,partz.BottomSurface = 0,0 | |
264 | partz.CFrame = (origin * cf(0,-1,0)) * ca(math.random(0,5),math.random(0,5),math.random(0,5)) | |
265 | partz:BreakJoints() | |
266 | local meshz = Instance.new("BlockMesh",partz) | |
267 | meshz.Scale = v3(1,1,1) | |
268 | coroutine.resume(coroutine.create(function(partzz,m) | |
269 | wait(math.random(4,5)) | |
270 | for i=0,1,.025 do | |
271 | partzz.Transparency = i | |
272 | wait() | |
273 | end | |
274 | partzz:Destroy() | |
275 | end),partz,meshz) | |
276 | end | |
277 | function placeFirePart(origin,size) | |
278 | local partz = Instance.new("Part",workspace) | |
279 | partz.FormFactor = "Custom" | |
280 | partz.Transparency = 1 | |
281 | partz.CanCollide = false | |
282 | partz.Anchored = true | |
283 | partz.TopSurface,partz.BottomSurface = 0,0 | |
284 | partz.CFrame = (origin * cf(0,-1,0)) * ca(math.random(0,5),math.random(0,5),math.random(0,5)) | |
285 | partz:BreakJoints() | |
286 | local fire = Instance.new("Fire",partz) | |
287 | fire.Size = size | |
288 | local meshz = Instance.new("BlockMesh",partz) | |
289 | meshz.Scale = v3(1,1,1) | |
290 | coroutine.resume(coroutine.create(function(fi,partzz) | |
291 | wait(math.random(4,5)) | |
292 | for i=1,fi.Size do | |
293 | fi.Size = fi.Size-1 | |
294 | wait() | |
295 | end | |
296 | partzz:Destroy() | |
297 | end),fire,partz) | |
298 | end | |
299 | function quickSound(id,v) | |
300 | local s = Instance.new("Sound",workspace) | |
301 | s.SoundId = id | |
302 | s.PlayOnRemove = true | |
303 | s.Volume = v or 1 | |
304 | delay(0.025,function()s:remove()end) | |
305 | end | |
306 | --------------------------------------------- | |
307 | local respawn | |
308 | function loadNew(npoint,scl) | |
309 | if ((tick()-lastRespawnTime) < minRespawnTime)and not firstTime and not Dead then return end | |
310 | lastRespawnTime = tick() | |
311 | firstTime = false | |
312 | pcall(function()model:Destroy()end) | |
313 | local ncombo = mCombo[math.random(1,#mCombo)] | |
314 | scale = scl or scale | |
315 | material = ncombo[1] | |
316 | color = ncombo[2] | |
317 | Mode = "" | |
318 | Attacking = false | |
319 | CurAttack = "" | |
320 | maxhealth = (scl and scl*100)or maxhealthdefault | |
321 | start = npoint or root.CFrame * CFrame.new(scale*2,scale*5,0) | |
322 | parts = {} | |
323 | model = Instance.new("Model",workspace) | |
324 | model.Name = name | |
325 | rootpart = Part("HumanoidRootPart",model,Vector3.new(2*scale,2*scale,1*scale),start,color,1,false,true,material) | |
326 | torso = Part("Torso",model,Vector3.new(2*scale,2*scale,1*scale),start,color,1,false,true,material) | |
327 | rootj = Weld(rootpart,torso) | |
328 | head = Part("Head",model,Vector3.new(1*scale,1*scale,1*scale),start,color,.9,false,true,material) | |
329 | headw = Weld(torso,head,CFrame.new(0,1*scale,0),CFrame.new(0,-.5*scale,0)) | |
330 | larm = Part("Left Arm",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
331 | Mesh(larm,"Brick") | |
332 | larmw = Weld(torso,larm,CFrame.new(-1.5*scale,0.5*scale,0),CFrame.new(0,.02*scale,0))--CFrame.new(0.5*scale,0.5*scale,0)) | |
333 | rarm = Part("Right Arm",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
334 | Mesh(rarm,"Brick") | |
335 | rarmw = Weld(torso,rarm,CFrame.new(1.5*scale,.5*scale,0),CFrame.new(0,0.02*scale,0))--CFrame.new(-0.5*scale,0.5*scale,0)) | |
336 | lleg = Part("Left Leg",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
337 | Mesh(lleg,"Brick") | |
338 | llegw = Weld(torso,lleg,CFrame.new(-.5*scale,-1*scale,0),CFrame.new(0,.53*scale,0))--CFrame.new(-.5*scale,1*scale,0)) | |
339 | rleg = Part("Right Leg",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
340 | Mesh(rleg,"Brick") | |
341 | rlegw = Weld(torso,rleg,CFrame.new(.5*scale,-1*scale,0),CFrame.new(0,.53*scale,0))--CFrame.new(.5*scale,1*scale,0)) | |
342 | ------- extra joints (ex: front left arm) | |
343 | larml = Part("Left Arm",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
344 | Mesh(larml,"Brick") | |
345 | larmlw = Weld(larm,larml,CFrame.new(0,-0.5*scale,0.5*scale),CFrame.new(0,.5*scale,0.5*scale)) | |
346 | rarml = Part("Right Arm",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
347 | Mesh(rarml,"Brick") | |
348 | rarmlw = Weld(rarm,rarml,CFrame.new(0,-0.5*scale,0.5*scale),CFrame.new(0,0.5*scale,0.5*scale)) | |
349 | llegl = Part("Left Leg",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
350 | Mesh(llegl,"Brick") | |
351 | lleglw = Weld(lleg,llegl,CFrame.new(0,-0.5*scale,-0.5*scale),CFrame.new(0,0.5*scale,-0.5*scale)) | |
352 | rlegl = Part("Right Leg",model,Vector3.new(1*scale,(2*scale)/2,1*scale),start,color,1,false,true,material) | |
353 | Mesh(rlegl,"Brick") | |
354 | rleglw = Weld(rleg,rlegl,CFrame.new(0,-0.5*scale,-0.5*scale),CFrame.new(0,0.5*scale,-0.5*scale)) | |
355 | ------- | |
356 | stand = Part("Stand",torso,Vector3.new(2*scale,2,1*scale),start,color,1,false,true,material) | |
357 | standw = Weld(rootpart,stand,CFrame.new(0,-(torso.Size.y+rleg.Size.y),0)) | |
358 | --------- part making | |
359 | -- head | |
360 | for x=1,5 do | |
361 | for y=1,5 do | |
362 | for z=1,5 do | |
363 | local isfacecol = (x==2 and y==4 and z==5 and true)or(x==3 and y==4 and z==5 and true)or | |
364 | (x==4 and y==4 and z==5 and true)or | |
365 | (x==2 and y==2 and z==5 and true)or | |
366 | (x==4 and y==2 and z==5 and true)or false | |
367 | local p = Part("T",model,Vector3.new(scale/5,scale/5,scale/5),torso.CFrame,(isfacecol and "Really black")or color,0,false,false,material) | |
368 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
369 | cf = cf * CFrame.new(scale*.6,scale*.6,scale*.6) | |
370 | local w = Weld(head,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
371 | table.insert(parts,p) | |
372 | end | |
373 | end | |
374 | end | |
375 | -- torso | |
376 | local tsx,tsy,tsz = torso.Size.X,torso.Size.Y,torso.Size.Z | |
377 | for x=1,3 do | |
378 | for y=1,5 do | |
379 | for z=1,2 do | |
380 | local p = Part("T",model,Vector3.new(scale/1.5,scale/2.5,scale/2),torso.CFrame,color,0,false,false,material) | |
381 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
382 | cf = cf * CFrame.new(scale*1.325,scale*1.2,scale*.75) | |
383 | local w = Weld(torso,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
384 | table.insert(parts,p) | |
385 | end | |
386 | end | |
387 | end | |
388 | -- la & ra & ll & rl | |
389 | for x=1,2 do | |
390 | for y=1,2 do | |
391 | for z=1,2 do | |
392 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
393 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
394 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
395 | local w = Weld(rarm,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
396 | table.insert(parts,p) | |
397 | -------- | |
398 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
399 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
400 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
401 | local w = Weld(larm,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
402 | table.insert(parts,p) | |
403 | -------- | |
404 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
405 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
406 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
407 | local w = Weld(rleg,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
408 | table.insert(parts,p) | |
409 | -------- | |
410 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
411 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
412 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
413 | local w = Weld(lleg,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
414 | table.insert(parts,p) | |
415 | ------------------------ | |
416 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
417 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
418 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
419 | local w = Weld(rarml,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
420 | table.insert(parts,p) | |
421 | -------- | |
422 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
423 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
424 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
425 | local w = Weld(larml,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
426 | table.insert(parts,p) | |
427 | -------- | |
428 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
429 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
430 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
431 | local w = Weld(rlegl,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
432 | table.insert(parts,p) | |
433 | -------- | |
434 | local p = Part("T",model,Vector3.new(scale/2,scale/2,scale/2),torso.CFrame,color,0,false,false,material) | |
435 | local cf = CFrame.new(x*p.Size.x,y*p.Size.y,z*p.Size.z):inverse() | |
436 | cf = cf * CFrame.new(scale*.75,scale*.75,scale*.75) | |
437 | local w = Weld(llegl,p,cf*CFrame.Angles(rand(.2),rand(.2),0)) | |
438 | table.insert(parts,p) | |
439 | end | |
440 | end | |
441 | end | |
442 | --------- extras | |
443 | gunp1 = Part("GunPart1",model,Vector3.new(scale/2,scale/2,scale/2),rarm.CFrame,"Black",0,false,false,"SmoothPlastic") | |
444 | gunp1m = Instance.new("CylinderMesh",gunp1) | |
445 | gunp1w = Weld(rarml,gunp1,CFrame.new(0,-((rarml.Size.y/2)-(gunp1.Size.y/2)-1),0)) | |
446 | gunp2 = Part("GunPart1",model,Vector3.new(scale/2,scale/2,scale/2)*1.1,rarm.CFrame,color,0,false,false,"SmoothPlastic") | |
447 | gunp1m = Instance.new("CylinderMesh",gunp2) | |
448 | gunp2w = Weld(gunp1,gunp2,CFrame.new(0,scale*.05,0)) | |
449 | gunlight = Instance.new("PointLight",gunp1) | |
450 | gunlight.Enabled = false | |
451 | gunlight.Color = BrickColor.new("Bright yellow").Color | |
452 | gunlight.Range = 2*scale | |
453 | ogp1 = gunp1w.C0 | |
454 | --------- | |
455 | game:service("ContentProvider"):Preload(asset..sounds["gun"]) | |
456 | --------- | |
457 | humanoid = Instance.new("Humanoid",model) | |
458 | humanoid.Name = "Golem" | |
459 | humanoid.MaxHealth = maxhealth | |
460 | humanoid.Health = humanoid.MaxHealth | |
461 | local numb = humanoid.MaxHealth | |
462 | delay(.1,function() -- debug | |
463 | for i=1,20 do | |
464 | wait() | |
465 | humanoid.Health = numb | |
466 | end | |
467 | wait(1)print(humanoid.Health) | |
468 | end) | |
469 | oll,orl,ola,ora,oh = llegw.C0,rlegw.C0,larmw.C0,rarmw.C0,headw.C0 | |
470 | olll,orll,olal,oral = lleglw.C0,rleglw.C0,larmlw.C0,rarmlw.C0 | |
471 | orac1 = rarmw.C1 | |
472 | orj = rootj.C0 | |
473 | table.insert(parts,larm)table.insert(parts,rarm)table.insert(parts,lleg)table.insert(parts,rleg)table.insert(parts,head); | |
474 | table.insert(parts,torso)table.insert(parts,rootpart) | |
475 | table.insert(parts,larml)table.insert(parts,rarml)table.insert(parts,llegl)table.insert(parts,rlegl) | |
476 | --------- | |
477 | humanoid.Died:connect(respawn) | |
478 | Dead = false | |
479 | Respawned = false | |
480 | end | |
481 | function respawn() | |
482 | Dead = true | |
483 | for i,v in pairs(parts)do v.CanCollide = true v:BreakJoints() end | |
484 | coroutine.wrap(function() | |
485 | wait(5) | |
486 | local point = torso.CFrame | |
487 | point = CFrame.new(point.x,point.y+30,point.z) | |
488 | local nt = {} | |
489 | for i,v in pairs(parts)do table.insert(nt,{p=v,pos=point*CFrame.new(0,rand(10),0)}) end | |
490 | for i=1,25 do | |
491 | wait() | |
492 | for _,v in pairs(nt)do | |
493 | pcall(function() | |
494 | v.p.Anchored = true | |
495 | v.p.CFrame = clerp(v.p.CFrame,v.pos,i/25) | |
496 | end) | |
497 | end | |
498 | end | |
499 | for i,v in pairs(parts)do pcall(function()v.Parent = nil end)end | |
500 | loadNew(point) | |
501 | end)() | |
502 | end | |
503 | function Glory() ------------------------- todo | |
504 | if Dead or Respawning then return end | |
505 | Attacking = true | |
506 | CurAttack = "GloryS1" | |
507 | local lastt = tick() | |
508 | local chargetime = 300 | |
509 | local num = 0 | |
510 | local connect | |
511 | connect = step:connect(function() | |
512 | num = num + 1 | |
513 | if (tick()-lastt) > .1 then | |
514 | lastt = tick() | |
515 | brickMagic(head.CFrame*CFrame.new(0,(2*scale)+(scale/2),0),"Really black",scale+2) | |
516 | end | |
517 | if num > chargetime or Respawned or Dead then | |
518 | Attacking = false | |
519 | CurAttack = "" | |
520 | connect:disconnect() | |
521 | end | |
522 | end) | |
523 | end | |
524 | function Shoot() | |
525 | if Dead or Respawning then return end | |
526 | Delay(0,function()gunlight.Enabled = true;wait(.1)gunlight.Enabled = false end) | |
527 | quickSound(asset..sounds["gun"],.2) | |
528 | local start = gunp1.CFrame*CFrame.Angles(-math.pi/2,0,0) | |
529 | ringExplode(CFrame.new(start.p,start.p-(start.lookVector*-4)),"Bright yellow",scale) | |
530 | local vel = start.lookVector | |
531 | local p = Part("Bullet",workspace,Vector3.new((scale>4 and 1)or .5,(scale>4 and 1)or .5,scale),start,color,0.4,true,false,"SmoothPlastic") | |
532 | local m = Mesh(p,"Sphere") | |
533 | local num = 0 | |
534 | local ign = model:children() | |
535 | local connect | |
536 | connect = step:connect(function() | |
537 | num = num + 1 | |
538 | local pp = p.Position | |
539 | local h,po | |
540 | repeat | |
541 | local r = Ray.new(pp,vel.unit*math.min(999.5,vel.magnitude/30+20)) | |
542 | h,po = workspace:FindPartOnRayWithIgnoreList(r,ign) | |
543 | if h then | |
544 | if h.CanCollide then | |
545 | break | |
546 | else | |
547 | table.insert(ign,h) | |
548 | h = nil | |
549 | end | |
550 | else | |
551 | break | |
552 | end | |
553 | until false | |
554 | p.CFrame = CFrame.new(po,po+vel) | |
555 | if h or num > 300 or Respawned or Dead then | |
556 | local cf = p.CFrame | |
557 | coroutine.wrap(function(cfz) | |
558 | for i=1,math.random(1,3)do | |
559 | Smoke(cfz,1,color) | |
560 | end | |
561 | if h~=nil then | |
562 | local obj = h.CFrame:pointToObjectSpace(po) | |
563 | local siz = h.Size/2 | |
564 | local svec = obj/siz | |
565 | svec = Vector3.new(math.floor(math.abs(svec.X)+.01)*svec.X/math.abs(svec.X), | |
566 | math.floor(math.abs(svec.Y))*svec.Y/math.abs(svec.Y) , | |
567 | math.floor(math.abs(svec.Z))*svec.Z/math.abs(svec.Z)) | |
568 | if svec.magnitude ~= 1 then return end | |
569 | local dir = h.CFrame:vectorToWorldSpace(svec) | |
570 | for i=1,math.random(1,3)do | |
571 | if material=="Ice" then | |
572 | spikeMagic(CFrame.new(po,po-dir)*CFrame.new(math.random(-3,3),0,math.random(-3,3))*CFrame.Angles(math.pi/2,0,0),math.random(scale-2,scale),color) | |
573 | elseif material=="Marble" then | |
574 | placeRock(CFrame.new(po,po-dir)*CFrame.new(math.random(-3,3),0,math.random(-3,3)),math.random(scale-2,scale)) | |
575 | elseif material=="Brick" then | |
576 | placeFirePart(CFrame.new(po,po-dir)*CFrame.new(math.random(-3,3),0,math.random(-3,3)),math.random(scale,scale+4)) | |
577 | end | |
578 | end | |
579 | end | |
580 | end)(cf) | |
581 | if h then | |
582 | if h.Parent:FindFirstChild("Humanoid")and h.Parent~=model then | |
583 | h.Parent:FindFirstChild("Humanoid"):TakeDamage(5*(scale/2)) | |
584 | elseif h.Parent:FindFirstChild("Golem")and h.Parent~=model then | |
585 | h.Parent:FindFirstChild("Golem"):TakeDamage(50*scale) | |
586 | end | |
587 | end | |
588 | p:Destroy() | |
589 | connect:disconnect() | |
590 | end | |
591 | end) | |
592 | end | |
593 | loadNew() | |
594 | bg = Instance.new("BodyGyro") | |
595 | bg.maxTorque = Vector3.new(4e+005,4e+005,4e+005)*math.huge | |
596 | bg.P = 20e+003 | |
597 | --------------------------------------------- | |
598 | mouse.KeyDown:connect(function(key) | |
599 | key:lower() | |
600 | if Dead then return end | |
601 | if key=="q" then | |
602 | root.CFrame = torso.CFrame*CFrame.new(0,scale*2.5,0) | |
603 | elseif key=="l" then | |
604 | if CurAttack=="LaserArm" then | |
605 | Attacking = false | |
606 | CurAttack = "" | |
607 | else | |
608 | if not Attacking then | |
609 | Attacking = true | |
610 | CurAttack = "LaserArm" | |
611 | end | |
612 | end | |
613 | elseif key=="t" then | |
614 | if not Attacking then | |
615 | Glory() | |
616 | end | |
617 | elseif key=="r" then | |
618 | Respawned = true | |
619 | loadNew() | |
620 | elseif key=="x" then | |
621 | --Attacking = true | |
622 | --CurAttack = "Grab" | |
623 | end | |
624 | end) | |
625 | mouse.Button1Down:connect(function() | |
626 | local targ = mouse.Target | |
627 | if targ and not Attacking and not Dead then | |
628 | humanoid:MoveTo(mouse.Hit.p,targ) | |
629 | elseif Attacking and CurAttack=="LaserArm" then | |
630 | Down = true | |
631 | while Down and Attacking and CurAttack=="LaserArm" do | |
632 | --if not Down or not Attacking or CurAttack~="LaserArm" then break end -- dis debug tho | |
633 | wait(.25) | |
634 | Shoot() | |
635 | end | |
636 | end | |
637 | end) | |
638 | mouse.Button2Down:connect(function() | |
639 | if not Attacking and not Dead then | |
640 | -- humanoid:MoveTo(torso.Position,torso) | |
641 | end | |
642 | end) | |
643 | mouse.Button1Up:connect(function() | |
644 | Down = false | |
645 | end) | |
646 | player.Chatted:connect(function(msg) | |
647 | msg:lower() | |
648 | if msg:sub(1,6)=="/scale" then | |
649 | if tonumber(msg:sub(8)) < 1 then return end | |
650 | local cf = torso.CFrame*CFrame.new(0,tonumber(msg:sub(8))*2,0) | |
651 | loadNew(cf,tonumber(msg:sub(8)) or 10) | |
652 | end | |
653 | end) | |
654 | --------------------------------------------- anims | |
655 | count = 0 | |
656 | angle = 0 | |
657 | counttime = 70 | |
658 | countspeed = 1 | |
659 | speed = .3 | |
660 | ||
661 | step:connect(function() | |
662 | if not Dead then | |
663 | count = (count%counttime)+countspeed | |
664 | angle = math.pi*math.cos((math.pi*2)/counttime*count) | |
665 | humanoid.WalkSpeed = (scale > 5 and scale*2)or 10 | |
666 | rarm.CanCollide,larm.CanCollide,lleg.CanCollide,rleg.CanCollide = true,true,true,true | |
667 | for i,v in pairs(parts)do v.CanCollide = true end | |
668 | model.Name = name | |
669 | torVel = Vector3.new(torso.Velocity.x,0,torso.Velocity.z) | |
670 | if not Attacking then | |
671 | if torVel.magnitude > 2 then | |
672 | Mode = "Walking" | |
673 | elseif torVel.magnitude < 2 then | |
674 | Mode = "Idle" | |
675 | end | |
676 | else | |
677 | humanoid:MoveTo(torso.Position,torso) | |
678 | Mode = CurAttack | |
679 | end | |
680 | if Mode=="Idle" then | |
681 | bg.Parent = nil | |
682 | speed,countspeed,counttime = .3,.8,100 | |
683 | gunp1w.C0 = clerp(gunp1w.C0,ogp1,speed) | |
684 | rlegw.C0 = clerp(rlegw.C0,orl*CFrame.Angles(angle*speed*.2,0,0),speed) | |
685 | rarmw.C0 = clerp(rarmw.C0,ora*CFrame.Angles(-angle*speed*.2+math.abs(angle*.1),0,0),speed) | |
686 | rarmw.C1 = clerp(rarmw.C1,orac1,speed) | |
687 | llegw.C0 = clerp(llegw.C0,oll*CFrame.Angles(-angle*speed*.2,0,0),speed) | |
688 | larmw.C0 = clerp(larmw.C0,ola*CFrame.Angles(angle*speed*.2+math.abs(angle*.1),0,0),speed) | |
689 | -------- | |
690 | rleglw.C0 = clerp(rleglw.C0,orll*CFrame.Angles(angle*speed*.1,0,0),speed) | |
691 | rarmlw.C0 = clerp(rarmlw.C0,oral*CFrame.Angles(-angle*speed*.1,0,0),speed) | |
692 | lleglw.C0 = clerp(lleglw.C0,olll*CFrame.Angles(-angle*speed*.1,0,0),speed) | |
693 | larmlw.C0 = clerp(larmlw.C0,olal*CFrame.Angles(angle*speed*.1,0,0),speed) | |
694 | -------- | |
695 | headw.C0 = clerp(headw.C0,oh*CFrame.Angles(0,0,0),speed) | |
696 | rootj.C0 = clerp(rootj.C0,orj*CFrame.Angles(0,0,0),speed) | |
697 | elseif Mode=="Walking" then | |
698 | bg.Parent = nil | |
699 | speed,countspeed,counttime = .5,1,30 | |
700 | gunp1w.C0 = clerp(gunp1w.C0,ogp1,speed) | |
701 | rlegw.C0 = clerp(rlegw.C0,orl*CFrame.Angles(angle*speed*.3,0,0),speed) | |
702 | rarmw.C0 = clerp(rarmw.C0,ora*CFrame.Angles(-angle*speed*.3,0,0),speed) | |
703 | rarmw.C1 = clerp(rarmw.C1,orac1,speed) | |
704 | llegw.C0 = clerp(llegw.C0,oll*CFrame.Angles(-angle*speed*.3,0,0),speed) | |
705 | larmw.C0 = clerp(larmw.C0,ola*CFrame.Angles(angle*speed*.3,0,0),speed) | |
706 | -------- | |
707 | rleglw.C0 = clerp(rleglw.C0,orll*CFrame.Angles(-math.abs(angle*speed*.1),0,0),speed) | |
708 | rarmlw.C0 = clerp(rarmlw.C0,oral*CFrame.Angles(math.abs(angle*speed*.1),0,0),speed) | |
709 | lleglw.C0 = clerp(lleglw.C0,olll*CFrame.Angles(-math.abs(angle*speed*.1),0,0),speed) | |
710 | larmlw.C0 = clerp(larmlw.C0,olal*CFrame.Angles(math.abs(angle*speed*.1),0,0),speed) | |
711 | -------- | |
712 | headw.C0 = clerp(headw.C0,oh*CFrame.Angles(0,0,0),speed) | |
713 | rootj.C0 = clerp(rootj.C0,orj*CFrame.Angles(0,0,0),speed) | |
714 | elseif Mode=="LaserArm" then | |
715 | bg.Parent = nil | |
716 | speed,countspeed,counttime = .3,.8,100 | |
717 | local mpos = torso.CFrame * CFrame.new(1.5*scale,0.5*scale,0) -- thx doogle <3 | |
718 | local cf = CFrame.new(mpos.p,mouse.Hit.p) * CFrame.Angles(math.pi/2,0,0) | |
719 | local x,y,z = torso.CFrame:toObjectSpace(cf):toEulerAnglesXYZ() | |
720 | gunp1w.C0 = clerp(gunp1w.C0,CFrame.new(0,-((rarm.Size.y/2)+(gunp1.Size.y/2)),0),speed) | |
721 | rlegw.C0 = clerp(rlegw.C0,orl*CFrame.Angles(angle*speed*.2,0,0),speed) | |
722 | rarmw.C0 = clerp(rarmw.C0,ora*CFrame.Angles(x,y,z),speed) | |
723 | llegw.C0 = clerp(llegw.C0,oll*CFrame.Angles(-angle*speed*.2,0,0),speed) | |
724 | larmw.C0 = clerp(larmw.C0,ola*CFrame.Angles(angle*speed*.2+math.abs(angle*.1),0,0),speed) | |
725 | -------- | |
726 | rleglw.C0 = clerp(rleglw.C0,orll*CFrame.Angles(angle*speed*.1,0,0),speed) | |
727 | rarmlw.C0 = clerp(rarmlw.C0,oral,speed) | |
728 | lleglw.C0 = clerp(lleglw.C0,olll*CFrame.Angles(-angle*speed*.1,0,0),speed) | |
729 | larmlw.C0 = clerp(larmlw.C0,olal*CFrame.Angles(angle*speed*.05+math.abs(angle*.1),0,0),speed) | |
730 | -------- | |
731 | headw.C0 = clerp(headw.C0,oh*CFrame.Angles(0,0,0),speed) | |
732 | rootj.C0 = clerp(rootj.C0,orj*CFrame.Angles(0,0,0),speed) | |
733 | elseif Mode=="GloryS1" then | |
734 | bg.Parent = nil | |
735 | speed,countspeed,counttime = .3,.8,100 | |
736 | gunp1w.C0 = clerp(gunp1w.C0,ogp1,speed) | |
737 | rlegw.C0 = clerp(rlegw.C0,orl*CFrame.Angles(angle*speed*.2,0,0),speed) | |
738 | rarmw.C0 = clerp(rarmw.C0,ora*CFrame.Angles(angle*speed*.2-math.pi,0,-.25),speed) | |
739 | rarmw.C1 = clerp(rarmw.C1,orac1,speed) | |
740 | llegw.C0 = clerp(llegw.C0,oll*CFrame.Angles(-angle*speed*.2,0,0),speed) | |
741 | larmw.C0 = clerp(larmw.C0,ola*CFrame.Angles(angle*speed*.1-math.pi,0,.25),speed) | |
742 | -------- | |
743 | rleglw.C0 = clerp(rleglw.C0,orll*CFrame.Angles(angle*speed*.1,0,0),speed) | |
744 | rarmlw.C0 = clerp(rarmlw.C0,oral*CFrame.Angles(-angle*speed*.05,0,0),speed) | |
745 | lleglw.C0 = clerp(lleglw.C0,olll*CFrame.Angles(-angle*speed*.1,0,0),speed) | |
746 | larmlw.C0 = clerp(larmlw.C0,olal*CFrame.Angles(angle*speed*.05,0,0),speed) | |
747 | -------- | |
748 | headw.C0 = clerp(headw.C0,oh*CFrame.Angles(0,0,0),speed) | |
749 | rootj.C0 = clerp(rootj.C0,orj*CFrame.Angles(0,0,0),speed) | |
750 | elseif Mode=="Grab" then -------------------------------------- todo | |
751 | bg.Parent = nil | |
752 | speed,countspeed,counttime = .3,.8,100 | |
753 | gunp1w.C0 = clerp(gunp1w.C0,ogp1,speed) | |
754 | rlegw.C0 = clerp(rlegw.C0,orl*CFrame.Angles(0,0,0),speed) | |
755 | rarmw.C0 = clerp(rarmw.C0,ora*CFrame.Angles(0,0,0),speed) | |
756 | rarmw.C1 = clerp(rarmw.C1,orac1,speed) | |
757 | llegw.C0 = clerp(llegw.C0,oll*CFrame.Angles(0,0,0),speed) | |
758 | larmw.C0 = clerp(larmw.C0,ola*CFrame.Angles(0,0,0),speed) | |
759 | -------- | |
760 | rleglw.C0 = clerp(rleglw.C0,orll*CFrame.Angles(0,0,0),speed) | |
761 | rarmlw.C0 = clerp(rarmlw.C0,oral*CFrame.Angles(0,0,0),speed) | |
762 | lleglw.C0 = clerp(lleglw.C0,olll*CFrame.Angles(0,0,0),speed) | |
763 | larmlw.C0 = clerp(larmlw.C0,olal*CFrame.Angles(0,0,0),speed) | |
764 | -------- | |
765 | headw.C0 = clerp(headw.C0,oh*CFrame.Angles(0,0,0),speed) | |
766 | rootj.C0 = clerp(rootj.C0,orj*CFrame.Angles(0,0,0),speed) | |
767 | end | |
768 | end | |
769 | end) |