SHOW:
|
|
- or go back to the newest paste.
1 | - | --GOD-- |
1 | + | if game:GetService("RunService"):IsClient() then error("Please run as a server script. Use h/ instead of hl/.") end |
2 | print("FE Compatibility: by WaverlyCole & Mokiros") | |
3 | InternalData = {} | |
4 | do | |
5 | script.Parent = owner.Character | |
6 | local Event = Instance.new("RemoteEvent") | |
7 | Event.Name = "UserInput" | |
8 | local function NewFakeEvent() | |
9 | local Fake = {fakeEvent=true,Connect=function(self,Func)self.Function=Func end}Fake.connect = Fake.Connect | |
10 | return Fake | |
11 | end | |
12 | local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()} | |
13 | local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()} | |
14 | local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...) | |
15 | self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil | |
16 | end};ContextActionService.UnBindAction = ContextActionService.BindAction | |
17 | local function TriggerEvent(self,Event,...) | |
18 | local Trigger = Mouse[Event] | |
19 | if Trigger and Trigger.fakeEvent and Trigger.Function then | |
20 | Trigger.Function(...) | |
21 | end | |
22 | end | |
23 | Mouse.TrigEvent = TriggerEvent | |
24 | UserInputService.TrigEvent = TriggerEvent | |
25 | Event.OnServerEvent:Connect(function(FiredBy,Input) | |
26 | if FiredBy.Name ~= owner.Name then end | |
27 | if Input.MouseEvent then | |
28 | Mouse.Target = Input.Target | |
29 | Mouse.Hit = Input.Hit | |
30 | else | |
31 | local Begin = Input.UserInputState == Enum.UserInputState.Begin | |
32 | if Input.UserInputType == Enum.UserInputType.MouseButton1 then | |
33 | return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") | |
34 | end | |
35 | for _,Action in pairs(ContextActionService.Actions) do | |
36 | for _,Key in pairs(Action.Keys) do | |
37 | if Key==Input.KeyCode then | |
38 | Action.Function(Action.Name,Input.UserInputState,Input) | |
39 | end | |
40 | end | |
41 | end | |
42 | Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower()) | |
43 | UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false) | |
44 | end | |
45 | end) | |
46 | InternalData["Mouse"] = Mouse | |
47 | InternalData["ContextActionService"] = ContextActionService | |
48 | InternalData["UserInputService"] = UserInputService | |
49 | Event.Parent = NLS([[ | |
50 | local Player = owner | |
51 | local Event = script:WaitForChild("UserInput") | |
52 | local UserInputService = game:GetService("UserInputService") | |
53 | local Mouse = Player:GetMouse() | |
54 | local Input = function(Input,gameProcessedEvent) | |
55 | if gameProcessedEvent then return end | |
56 | Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState}) | |
57 | end | |
58 | UserInputService.InputBegan:Connect(Input) | |
59 | UserInputService.InputEnded:Connect(Input) | |
60 | local Hit,Target | |
61 | while wait(1/30) do | |
62 | if Hit ~= Mouse.Hit or Target ~= Mouse.Target then | |
63 | Hit,Target = Mouse.Hit,Mouse.Target | |
64 | Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit}) | |
65 | end | |
66 | end | |
67 | ]],owner.Character) | |
68 | end | |
69 | RealGame = game;game = setmetatable({},{ | |
70 | __index = function (self,Index) | |
71 | local Sandbox = function (Thing) | |
72 | if Thing:IsA("Player") then | |
73 | local RealPlayer = Thing | |
74 | return setmetatable({},{ | |
75 | __index = function (self,Index) | |
76 | local Type = type(RealPlayer[Index]) | |
77 | if Type == "function" then | |
78 | if Index:lower() == "getmouse" or Index:lower() == "mouse" then | |
79 | return function (self) | |
80 | return InternalData["Mouse"] | |
81 | end | |
82 | end | |
83 | return function (self,...) | |
84 | return RealPlayer[Index](RealPlayer,...) | |
85 | end | |
86 | else | |
87 | if Index == "PlrObj" then | |
88 | return RealPlayer | |
89 | end | |
90 | return RealPlayer[Index] | |
91 | end | |
92 | end; | |
93 | __tostring = function(self) | |
94 | return RealPlayer.Name | |
95 | end | |
96 | }) | |
97 | end | |
98 | end | |
99 | if RealGame[Index] then | |
100 | local Type = type(RealGame[Index]) | |
101 | if Type == "function" then | |
102 | if Index:lower() == "getservice" or Index:lower() == "service" then | |
103 | return function (self,Service) | |
104 | if Service:lower() == "players" then | |
105 | return setmetatable({},{ | |
106 | __index = function (self2,Index2) | |
107 | local RealService = RealGame:GetService(Service) | |
108 | local Type2 = type(Index2) | |
109 | if Type2 == "function" then | |
110 | return function (self,...) | |
111 | return RealService[Index2](RealService,...) | |
112 | end | |
113 | else | |
114 | if Index2:lower() == "localplayer" then | |
115 | return Sandbox(owner) | |
116 | end | |
117 | return RealService[Index2] | |
118 | end | |
119 | end; | |
120 | __tostring = function(self) | |
121 | return RealGame:GetService(Service).Name | |
122 | end | |
123 | }) | |
124 | elseif Service:lower() == "contextactionservice" then | |
125 | return InternalData["ContextActionService"] | |
126 | elseif Service:lower() == "contextactionservice" then | |
127 | return InternalData["UserInputService"] | |
128 | elseif Service:lower() == "runservice" then | |
129 | return setmetatable({},{ | |
130 | __index = function(self2,Index2) | |
131 | local RealService = RealGame:GetService(Service) | |
132 | local Type2 = type(Index2) | |
133 | if Type2 == "function" then | |
134 | return function (self,...) | |
135 | return RealService[Index2](RealService,...) | |
136 | end | |
137 | else | |
138 | if Index2:lower() == "bindtorenderstep" then | |
139 | return function (self,Name,Priority,Function) | |
140 | return RealGame:GetService("RunService").Stepped:Connect(Function) | |
141 | end | |
142 | end | |
143 | if Index2:lower() == "renderstepped" then | |
144 | return RealService["Stepped"] | |
145 | end | |
146 | return RealService[Index2] | |
147 | end | |
148 | end | |
149 | }) | |
150 | else | |
151 | return RealGame:GetService(Service) | |
152 | end | |
153 | end | |
154 | end | |
155 | return function (self,...) | |
156 | return RealGame[Index](RealGame,...) | |
157 | end | |
158 | else | |
159 | if game:GetService(Index) then | |
160 | return game:GetService(Index) | |
161 | end | |
162 | return RealGame[Index] | |
163 | end | |
164 | else | |
165 | return nil | |
166 | end | |
167 | end | |
168 | });Game = game;owner = game:GetService("Players").LocalPlayer;script = {} | |
169 | print("Complete! Running...") | |
170 | ||
171 | Player = game.Players.LocalPlayer | |
172 | Char = Player.Character | |
173 | Torso = Char.Torso | |
174 | Head = Char.Head | |
175 | Arms = {Char:FindFirstChild'Right Arm', Char:FindFirstChild'Left Arm'} | |
176 | Shoulders = {Torso:FindFirstChild'Right Shoulder', Torso:FindFirstChild'Left Shoulder'} | |
177 | Legs = {Char:FindFirstChild'Right Leg', Char:FindFirstChild'Left Leg'} | |
178 | HumRoot = Char:FindFirstChild'HumanoidRootPart' | |
179 | HumRootJ = HumRoot['RootJoint'] | |
180 | Humanoid = Char:FindFirstChild'Humanoid' | |
181 | Mouse = Player:GetMouse() | |
182 | ||
183 | local s = Workspace:FindFirstChild('god_script: '..Player.Name,true) | |
184 | if s then | |
185 | local f = s:FindFirstChild'stop' | |
186 | if f then | |
187 | f:Invoke() | |
188 | end | |
189 | end | |
190 | s=nil | |
191 | ||
192 | Debris = game:service'Debris' | |
193 | RS = game:service'RunService' | |
194 | Chatserv = game:service'Chat' | |
195 | Insertserv = game:service'InsertService' | |
196 | ||
197 | Neck = Torso:FindFirstChild'Neck' | |
198 | ||
199 | pcall(function() Char.Shirobako:Destroy() end) | |
200 | Main = Instance.new("Model",Char) | |
201 | Main.Name = "Shirobako" | |
202 | script.Parent=Main | |
203 | ||
204 | cfn=CFrame.new | |
205 | ang = function(x,y,z) return CFrame.Angles(x or 0,y or 0,z or 0)end | |
206 | m={tau=math.pi*2;float=196.25} | |
207 | v3n=Vector3.new | |
208 | md,mr,PI=math.rad, math.random, math.pi | |
209 | bcol=BrickColor.new | |
210 | numkp=NumberSequenceKeypoint.new | |
211 | colkp=ColorSequenceKeypoint.new | |
212 | ||
213 | function l(a1,x,y,z,rx,ry,rz) | |
214 | local cf | |
215 | if tostring(a1):find(',') == nil then | |
216 | cf=a1.CFrame | |
217 | else cf=a1 end | |
218 | return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles( | |
219 | rx or 0,ry or 0,yz or 0) | |
220 | end | |
221 | ||
222 | New = function(what) | |
223 | return function(bar) | |
224 | local obj=Instance.new(what) | |
225 | for arg,val in pairs(bar) do | |
226 | if arg == "_P" then | |
227 | obj.Parent = val | |
228 | elseif arg=="_PP" then | |
229 | obj.Part0=val[1] | |
230 | obj.Part1=val[2] | |
231 | else | |
232 | if pcall(function()return obj[arg] end) then | |
233 | obj[arg]=val | |
234 | end | |
235 | end | |
236 | end | |
237 | return obj | |
238 | end | |
239 | end | |
240 | ||
241 | Edit = function(what) | |
242 | return function(args) | |
243 | for ind,obj in next,what do | |
244 | for arg,val in next,args do | |
245 | local child,argu = arg:match"(.+)%.(.+)" | |
246 | if child and argu then | |
247 | if pcall(function()return obj[child][argu] end) then | |
248 | -- print'a' | |
249 | obj[child][argu]=val | |
250 | end | |
251 | else | |
252 | if arg=='_F'then | |
253 | val(ind,obj) | |
254 | elseif pcall(function()return obj[arg]end) then | |
255 | obj[arg]=val | |
256 | end | |
257 | end | |
258 | end | |
259 | end | |
260 | end | |
261 | end | |
262 | ||
263 | _1,_2,_3=nil,nil | |
264 | set_material = nil | |
265 | set_color = nil | |
266 | set_parent = nil | |
267 | set_anchor = nil | |
268 | Part = function(x,y,z,col,tr) | |
269 | local p = New"Part"{ | |
270 | _P=set_parent or Main; | |
271 | BrickColor = bcol(col or set_color or "White"); | |
272 | CanCollide = false; | |
273 | Transparency = tr or 0; | |
274 | Size = Vector3.new(x or 0,y or 0,z or 0); | |
275 | Material = set_material or 'SmoothPlastic'; | |
276 | Anchored = (set_anchor~=nil and set_anchor or false) | |
277 | } | |
278 | for _,sur in next,Enum.NormalId:GetEnumItems() do | |
279 | p[sur.Name..'Surface'] = 10 | |
280 | end | |
281 | _1 = p | |
282 | return p | |
283 | end | |
284 | Wedge = function(x,y,z,col,tr) | |
285 | local p = New"WedgePart"{ | |
286 | _P=Main; | |
287 | BrickColor = bcol(col or "White"); | |
288 | CanCollide = false; | |
289 | Transparency = tr or 0; | |
290 | Size = Vector3.new(x or 0,y or 0,z or 0); | |
291 | Material = set_material or 'SmoothPlastic'; | |
292 | Anchored = (set_anchor~=nil and set_anchor or false) | |
293 | } | |
294 | for _,sur in next,Enum.NormalId:GetEnumItems() do | |
295 | p[sur.Name..'Surface'] = 0 | |
296 | end | |
297 | _1 = p | |
298 | return p | |
299 | end | |
300 | Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things | |
301 | local ar = {...} | |
302 | local cframe0,cframe1 | |
303 | local function checkf()local res=true | |
304 | for i,v in pairs(ar)do | |
305 | if type(v) ~= 'number' then | |
306 | res=false | |
307 | end | |
308 | end | |
309 | return res | |
310 | end | |
311 | if type(c0) == 'table' then | |
312 | cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles( | |
313 | c0[4] or 0, c0[5] or 0, c0[6] or 0) | |
314 | elseif type(c0) == 'userdata' then | |
315 | cframe0 = c0 | |
316 | elseif type(c0) == 'number' and checkf() then | |
317 | cframe0 = CFrame.new(c0 or 0,c1 or 0,ar[1] or 0) * CFrame.Angles(ar[2] or 0, ar[3] or 0, ar[4] or 0) | |
318 | end | |
319 | if type(c1) == 'table' then | |
320 | cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles( | |
321 | c1[4] or 0, c1[5] or 0, c1[6] or 0) | |
322 | elseif type(c1) == 'userdata' then | |
323 | cframe1 = c1 | |
324 | elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then | |
325 | cframe1 = CFrame.new(c1 or 0, ar[1] or 0, ar[2] or 0) * CFrame.Angles(ar[3] or 0, ar[4] or 0, ar[5] or 0) | |
326 | end | |
327 | for i,v in pairs(ar)do | |
328 | if type(v) == 'table' then | |
329 | cframe1 = CFrame.new(v[1] or 0, v[2] or 0, v[3] or 0) * CFrame.new(v[4] or 0, v[5] or 0, v[6] or 0) | |
330 | elseif type(v) == 'userdata' then | |
331 | cframe1 = v | |
332 | end | |
333 | end | |
334 | ||
335 | cframe0,cframe1 = cframe1,cframe0 | |
336 | part0.Position=part1.Position | |
337 | local weld = Instance.new("Motor") | |
338 | weld.Part0 = part0 | |
339 | weld.Part1 = part1 | |
340 | weld.C0 = cframe0 or CFrame.new() | |
341 | weld.C1 = cframe1 or CFrame.new() | |
342 | weld.MaxVelocity = .1 | |
343 | weld.Parent = part0 | |
344 | _2=weld | |
345 | return weld | |
346 | end | |
347 | ||
348 | mesh_ids = { | |
349 | spike = "rbxassetid://1033714"; | |
350 | ring = "rbxassetid://3270017"; | |
351 | coil = 'rbxassetid://16606212'; | |
352 | diamond = 'rbxassetid://9756362'; | |
353 | rock = 'rbxassetid://1290033'; | |
354 | } | |
355 | mesh_texs = { | |
356 | rock = 'rbxassetid://1290030'; | |
357 | } | |
358 | ||
359 | Mesh = function(parent,id,sx,sy,sz) | |
360 | local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh') | |
361 | local mesh = Instance.new(name) | |
362 | if id == 's' then | |
363 | mesh.MeshType = Enum.MeshType.Sphere | |
364 | elseif id == 'w' then | |
365 | mesh.MeshType = Enum.MeshType.Wedge | |
366 | elseif string.find(id,"://") ~= nil then | |
367 | mesh.MeshId = id | |
368 | end | |
369 | mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1) | |
370 | mesh.Parent = parent | |
371 | _3=mesh | |
372 | return mesh | |
373 | end | |
374 | ||
375 | cane = Part(.1,4,.1,'Deep blue')Mesh(_1,'cyl') | |
376 | hw=Weld(cane,Arms[1],0,-1.15,0,-PI/2) | |
377 | ||
378 | bl = Part(.4,.4,.1)Mesh(_1,'s') | |
379 | Weld(bl,cane,0,2.25) | |
380 | bl2 = Part(.3,.3,.1,'Deep orange')Mesh(_1,'s',1,1,1.25) | |
381 | Weld(bl2,bl)_1.Material='Neon' | |
382 | set_color='Black' | |
383 | for i=0,1,1/4 do | |
384 | ring = Part(.1,.1,.1)Mesh(_1,mesh_ids.ring,.25-i*(.25*.9),.25-i*(.25*.9),.1) | |
385 | Weld(ring,cane,0,-2-i*.25,0,PI/2) | |
386 | end | |
387 | set_color='Bright orange' | |
388 | for a=-PI/2,PI/2,PI/6 do | |
389 | arm = Part(.1,.5,.1)Mesh(_1,'bl',.5,1,.5) | |
390 | New'Weld'{_P=arm;_PP={arm,bl}; | |
391 | C1=cfn(0,0,0)*ang(0,0,a); | |
392 | C0=cfn(0,-arm.Size.y,0); | |
393 | } | |
394 | dec = Part(.1,.1,.1,'Bright red')Mesh(_1,'bl',.525,1,.525)_1.Material='Neon' | |
395 | Weld(dec,arm,0,.25*.8) | |
396 | end | |
397 | ||
398 | arm=Part(.1,.9,.1)Mesh(_1,'bl',.5,1,.5) | |
399 | New'Weld'{_P=arm;_PP={arm,bl}; | |
400 | C1=cfn(.1,-.15,0)*ang(0,0,md'25'); | |
401 | C0=cfn(0,arm.Size.y/2,0); | |
402 | } | |
403 | ||
404 | dec = Part(.1,.1,.1,'Bright red')Mesh(_1,'bl',.525,1,.525)_1.Material='Neon' | |
405 | Weld(dec,arm,0,-.45*.8) | |
406 | arm=Part(.1,.9,.1)Mesh(_1,'bl',.5,1,.5) | |
407 | ||
408 | New'Weld'{_P=arm;_PP={arm,bl}; | |
409 | C1=cfn(-.1,-.15,0)*ang(0,0,md'-25'); | |
410 | C0=cfn(0,arm.Size.y/2,0); | |
411 | } | |
412 | dec = Part(.1,.1,.1,'Bright red')Mesh(_1,'bl',.525,1,.525)_1.Material='Neon' | |
413 | Weld(dec,arm,0,-.45*.8) | |
414 | ||
415 | set_color=nil | |
416 | coil=Part(.1,.1,.1,'New Yeller')Mesh(_1,mesh_ids.coil,.11,.11,1.15) | |
417 | Weld(coil,cane,0,0,0,PI/2,0,md'15') | |
418 | ||
419 | disk=Part(.1,.1,.1,'New Yeller')Mesh(_1,'cyl',1.1,1,1.1) | |
420 | Weld(disk,cane,0,-2+.085) | |
421 | disk=Part(.1,.1,.1,'New Yeller')Mesh(_1,'cyl',1.1,1,1.1) | |
422 | Weld(disk,cane,0,2-.085) | |
423 | ||
424 | rainbow={} | |
425 | for i=0,1,.1 do | |
426 | local p=60/360 | |
427 | local col=Color3.fromHSV(p+((p*.25)*i),1,1) | |
428 | local kp=colkp(i,col) | |
429 | table.insert(rainbow,kp) | |
430 | end | |
431 | sizes={} | |
432 | b=false | |
433 | for i=0,1,1/4 do | |
434 | b=not b | |
435 | local s=.1+(i/2) | |
436 | local s2=s/5 | |
437 | local kp=numkp(i,(b and s or s2)) | |
438 | table.insert(sizes,kp) | |
439 | end | |
440 | emitter=New"ParticleEmitter"{_P=coil; | |
441 | Texture='rbxassetid://98824648'; | |
442 | Color=ColorSequence.new(rainbow); | |
443 | Size=NumberSequence.new(sizes); | |
444 | VelocitySpread=180; | |
445 | Lifetime=NumberRange.new(3); | |
446 | Transparency=NumberSequence.new{numkp(0,1);numkp(.5,.5);numkp(1,1)}; | |
447 | Speed=NumberRange.new(.25,.75); | |
448 | Rotation=NumberRange.new(0,75); | |
449 | LockedToPart=true; | |
450 | Rate=3; | |
451 | } | |
452 | ||
453 | Joints={} | |
454 | ||
455 | function addJoint(name,weld,c0,c1) | |
456 | local t= {} | |
457 | t.w=weld | |
458 | t.n_c0 = c0 or weld.C0 | |
459 | t.n_c1 = c1 or weld.C1 | |
460 | t._desired=weld.C0 | |
461 | t.spd=.1 | |
462 | t.l=0 | |
463 | ||
464 | function t:get() | |
465 | return setmetatable({},{__newindex=function(t,i,v) | |
466 | if i=='d' and self.l == 0 then | |
467 | self.d = v | |
468 | elseif i == 's' then self.spd=v end end}) | |
469 | end | |
470 | ||
471 | setmetatable(t,{__newindex=function(ta,i,v) | |
472 | if i=='d' then | |
473 | ta._desired = ta.n_c0 * v | |
474 | end end}) | |
475 | ||
476 | Joints[name]=t | |
477 | getfenv(0)[name]=Joints[name] | |
478 | end | |
479 | ||
480 | --Create Joints-- | |
481 | addJoint('rw',New"Weld"{_P = Torso;Part0=Torso;Part1=Arms[1]; | |
482 | C0=cfn(1,0.5,0); C1=cfn(-.5,0.5,0)}) | |
483 | addJoint('lw',New"Weld"{_P = Torso;Part0=Torso;Part1=Arms[2]; | |
484 | C0=cfn(-1,0.5,0); C1=cfn(.5,0.5,0)}) | |
485 | addJoint('rw2',New"Weld"{_P=Torso;_PP={Torso,Legs[1]}; | |
486 | C0=cfn(1,-1,0);C1=cfn(0.5,1,0)}) | |
487 | addJoint('lw2',New"Weld"{_P=Torso;_PP={Torso,Legs[2]}; | |
488 | C0=cfn(-1,-1,0);C1=cfn(-0.5,1,0)}) | |
489 | ||
490 | addJoint('tw',HumRootJ,cfn(0,0,0,-1,0,0,0,0,1,0,1,-0), | |
491 | cfn(0,0,0,-1,-0,-0,0,0,1,0,1,0)) | |
492 | ||
493 | addJoint('nw',Neck,cfn(0,1,0,-1,-0,-0,0,0,1,0,1,0), | |
494 | cfn(0,-.5,0,-1,-0,-0,0,0,1,0,1,0)) | |
495 | addJoint('hw',hw) | |
496 | ||
497 | Connections = {} | |
498 | ||
499 | anim_con = RS.Stepped:connect(function() | |
500 | for _,j in next,Joints do | |
501 | j.w.C0 = j.w.C0:lerp(j._desired,j.spd) | |
502 | end | |
503 | end) | |
504 | ||
505 | local pt=tick() | |
506 | local pm=0 | |
507 | local ppos=Torso.Position | |
508 | function shadow_effect() | |
509 | local ssss={} | |
510 | if (tick()-pt)>.075 then | |
511 | -- for _,hum in next,findHum(Torso.Position,10)do | |
512 | -- hum.Parent:BreakJoints() | |
513 | -- end | |
514 | Char.archivable=true | |
515 | local cl=Char:Clone()cl.Parent=Main | |
516 | Char.archivable=false | |
517 | for _,obj in next,cl:children() do | |
518 | if not obj:IsA'Part' then obj:Destroy() | |
519 | elseif obj:IsA'Part'then | |
520 | Edit{obj}{Transparency=.5;Reflectance=.1;Anchored=true;CanCollide=false; | |
521 | Material='Neon';BrickColro=bcol'New Yeller'} | |
522 | local ttt={obj,obj.CFrame} | |
523 | table.insert(ssss,ttt) | |
524 | end | |
525 | end | |
526 | ||
527 | Spawn(function() | |
528 | for i=0,1,.1 do | |
529 | for _,v in next,ssss do | |
530 | v[1].Transparency=.5+i/2 | |
531 | v[1].Size=v[1].Size*1.025 | |
532 | v[1].CFrame=v[2] | |
533 | v[1].BrickColor=bcol'New Yeller' | |
534 | end | |
535 | wait() | |
536 | end | |
537 | cl:Destroy()end) | |
538 | pt=tick() | |
539 | end | |
540 | end | |
541 | dash=false | |
542 | ||
543 | function findHum(pos,rad,hum2) | |
544 | local hums={} | |
545 | function check(a) | |
546 | local res=false | |
547 | for i,ho in pairs(hums)do | |
548 | if a==ho then res=true end | |
549 | end | |
550 | return res | |
551 | end | |
552 | for i,v in pairs(Workspace:children())do | |
553 | if v:IsA'Model'and v~=Char and v~=(hum2 or Char) then | |
554 | for i,q in pairs(v:children())do | |
555 | if q:IsA'Humanoid' and q.Parent:FindFirstChild'Torso'and(q.Torso.Position-pos).magnitude < rad then | |
556 | if not check(q)then | |
557 | table.insert(hums,q) | |
558 | end | |
559 | end | |
560 | end | |
561 | end | |
562 | end | |
563 | return hums | |
564 | end | |
565 | ||
566 | -- Head.face.Texture='rbxassetid://321187438' | |
567 | WalkSpeed=20 | |
568 | ||
569 | do --Idleloop | |
570 | --IDLES-- | |
571 | Anim="Idle" | |
572 | local sin,cos,abs = math.sin,math.cos,math.abs | |
573 | local rw,lw,rw2,lw2,tw = rw:get(),lw:get(),rw2:get(),lw2:get(),tw:get() | |
574 | local angle=0 | |
575 | local a=md'7.5' | |
576 | idle_con=RS.Stepped:connect(function() | |
577 | ||
578 | local walkmag = v3n(HumRoot.Velocity.x,0,HumRoot.Velocity.z).magnitude | |
579 | angle=angle%100+1/5 | |
580 | ||
581 | if walkmag > .2 then | |
582 | Anim='Walk' | |
583 | else | |
584 | Anim='Idle' | |
585 | end | |
586 | Humanoid.WalkSpeed=WalkSpeed | |
587 | if Anim == 'Idle' then | |
588 | rw.d = cfn(0,sin(angle)*.1,0)*ang(0,0,md'10'+sin(angle)*.075) | |
589 | lw.d = cfn(0,sin(angle)*.1,0)*ang(0,0,-md'10'-sin(angle)*.075) | |
590 | ||
591 | rw2.d = cfn(sin(angle)*.05,abs(sin(angle))*.05,0) * ang(0,0,md'5'-sin(angle)*.1) | |
592 | lw2.d = cfn(-sin(angle)*.05,abs(sin(angle))*.05,0) * ang(0,0,-md'5'+sin(angle)*.1) | |
593 | ||
594 | tw.d = cfn(0,0,sin(angle)*.15) | |
595 | elseif Anim == 'Walk' then | |
596 | tw.d=cfn(0,0,sin(angle)*.1)*ang(md'5') | |
597 | ||
598 | rw.d=ang(md'-15',0,a) | |
599 | lw.d=ang(md'-15',0,-a) | |
600 | rw2.d=ang(md'-15',0,a) | |
601 | lw2.d=ang(md'-15',0,-a) | |
602 | if dash and WalkSpeed>0 then | |
603 | Humanoid.WalkSpeed=130 | |
604 | shadow_effect() | |
605 | end | |
606 | end | |
607 | end) | |
608 | end | |
609 | ||
610 | function ringSFX(cf,p,r,s) | |
611 | p.Anchored=true | |
612 | p.CFrame=cf | |
613 | local t=p.Transparency | |
614 | local msh=Mesh(p,mesh_ids.ring) | |
615 | Spawn(function() | |
616 | for i=0,1,(s or .1) do | |
617 | p.Transparency=t+((1-t)*i) | |
618 | msh.Scale=v3n(r*i,r*i,1) | |
619 | wait() | |
620 | end | |
621 | p:Destroy() | |
622 | end) | |
623 | end | |
624 | function sphereSFX(cf,p,r,s) | |
625 | p.Anchored=true | |
626 | p.CFrame=cf | |
627 | local t=p.Transparency | |
628 | local msh=Mesh(p,'s') | |
629 | Spawn(function() | |
630 | for i=0,1,(s or .1) do | |
631 | p.Transparency=t+((1-t)*i) | |
632 | msh.Scale=v3n(r*i,r*i,r*i) | |
633 | wait() | |
634 | end | |
635 | p:Destroy() | |
636 | end) | |
637 | end | |
638 | ||
639 | function hideAllParts(wut,an) | |
640 | local parts={} | |
641 | local function hide(object,anchor) | |
642 | if object:IsA("BasePart") or object:IsA("Decal") then | |
643 | local tr=object.Transparency | |
644 | local t={o=object,t=tr} | |
645 | object.Transparency = 1 | |
646 | if object:IsA'BasePart' then | |
647 | t.a=object.Anchored | |
648 | ||
649 | if anchor==nil then | |
650 | object.Anchored=true | |
651 | else | |
652 | if anchor == 1 then | |
653 | object.Anchored=true | |
654 | else | |
655 | object.Anchored=false | |
656 | end | |
657 | end | |
658 | ||
659 | t.c=object.CanCollide | |
660 | object.CanCollide=false | |
661 | end | |
662 | ||
663 | table.insert(parts,t) | |
664 | end | |
665 | for _, child in ipairs(object:GetChildren()) do | |
666 | hide(child,an) | |
667 | end | |
668 | end | |
669 | hide(wut,an) | |
670 | -- for i,v in pairs(Char:children())do | |
671 | -- pcall(function()print(v.Anchored)end)end | |
672 | return function() | |
673 | for i,v in ipairs(parts) do | |
674 | v.o.Transparency = v.t | |
675 | if v.o:IsA'BasePart'then | |
676 | if v.a~=nil then | |
677 | v.o.Anchored=v.a | |
678 | end | |
679 | if v.c~=nil then | |
680 | v.o.CanCollide=v.c | |
681 | end | |
682 | end | |
683 | end | |
684 | end | |
685 | end | |
686 | ||
687 | -- unh=hideAllParts(Char)wait() | |
688 | -- unh() | |
689 | ||
690 | do --Main part of the script | |
691 | ||
692 | function slash(mouse) | |
693 | rw.l=1 | |
694 | rw.d=ang(PI/2,0,-PI/4/2)*ang(0,PI/2) | |
695 | hw.d=cfn(0,-.85,0)*ang(0,PI/2) | |
696 | wait'.5' | |
697 | local p=Part(4,4,1,'New Yeller',.5) | |
698 | p.Anchored=true | |
699 | local stp,enp=l(Torso,-5,0,-3).p,l(Torso,5,0,-3).p | |
700 | p.CFrame=cfn(stp,enp) | |
701 | local mag=(stp-enp).magnitude | |
702 | local sx,sz=p.Size.x,p.Size.y | |
703 | ||
704 | for _,hum in next,findHum(l(Torso,0,0,-3).p,5) do | |
705 | ringSFX(l(hum.Torso),Part(1,1,1,'New Yeller',.5),10) | |
706 | ringSFX(l(hum.Torso)*ang(PI/2),Part(1,1,1,'New Yeller',.5),10) | |
707 | ringSFX(l(hum.Torso)*ang(PI/2,PI/2),Part(1,1,1,'New Yeller',.5),10) | |
708 | ||
709 | local bl=Part(1,1,1,'New Yeller')bl.Anchored=true bl.Material='Neon' | |
710 | local msh=Mesh(_1,'s') | |
711 | bl.CFrame=hum.Torso.CFrame | |
712 | msh.Scale=hum.Parent:GetExtentsSize() | |
713 | local lol=math.max(msh.Scale.x,msh.Scale.y,msh.Scale.z) | |
714 | ||
715 | local scale=v3n(lol,lol,lol)*1.25 | |
716 | local pos=hum.Torso.Position | |
717 | ||
718 | ---Shrink ball, teleball with trail, enlarge and unhide--- | |
719 | Spawn(function() | |
720 | local unhide=hideAllParts(hum.Parent) | |
721 | for i=1,.1,-.05 do | |
722 | msh.Scale=scale*i | |
723 | wait() | |
724 | end | |
725 | ||
726 | bl.CFrame=cfn(mouse.hit.p) | |
727 | local mag=(pos-l(bl).p).magnitude | |
728 | local laz=Part(1,1,mag,'New Yeller',.5) laz.Anchored=true | |
729 | laz.CFrame=cfn(l(bl).p,pos)*cfn(0,0,-mag/2) | |
730 | Spawn(function() | |
731 | for i=0,1,.1 do laz.Transparency=i wait()end laz:Destroy()end) | |
732 | for i=.1,1,.1 do | |
733 | msh.Scale=scale*i | |
734 | wait() | |
735 | end | |
736 | hum.Parent:MoveTo(bl.Position) | |
737 | -- repeat wait() until (l(hum.Torso).p-l(bl,0,2).p).magnitude<3 | |
738 | unhide() | |
739 | ||
740 | bl:Destroy() | |
741 | end) | |
742 | ||
743 | end | |
744 | Spawn(function() | |
745 | for i=0,1,.25 do | |
746 | p.Size=v3n(sx,sz,i*mag) | |
747 | p.CFrame=cfn(stp,enp)*cfn(0,0,-(i*(mag/2))) | |
748 | ||
749 | wait() | |
750 | end | |
751 | for i=.5,1,.1 do | |
752 | p.Transparency=i | |
753 | wait() | |
754 | end p:Destroy() | |
755 | end) | |
756 | rw.spd=.3 | |
757 | rw.d=ang(PI/2,0,md'130')*ang(0,PI/2) | |
758 | wait'.5' | |
759 | rw.l=0 | |
760 | hw.d=cfn() | |
761 | end | |
762 | ||
763 | function laser(mouse) | |
764 | rw.l=1 | |
765 | lw.l=1 | |
766 | rw.d=ang(md'100',0,md'-55') | |
767 | lw.d=ang(md'100',0,md'55') | |
768 | hw.d=ang(md'7.5',md'45') | |
769 | cp=Part(.1,.1,.1) | |
770 | local laz=Part(3,0,3,'New Yeller')laz.Material='Neon' | |
771 | Mesh(laz,'bl').Name='m' | |
772 | laz.Anchored=true | |
773 | local t={} | |
774 | for i=0,m.tau,m.tau/6 do | |
775 | local p=Part(.1,.1,.1) | |
776 | local w=Weld(p,bl,{0,0,-.25,PI/2,i,0},{0,0,1}) | |
777 | Edit{w}{C0=w.C0*ang(PI/2),C1=w.C1*ang(PI/2)} | |
778 | Mesh(_1,mesh_ids.diamond,.3,.3,.3) | |
779 | w.DesiredAngle=9e+009 | |
780 | table.insert(t,p) | |
781 | end | |
782 | aura=Part(1,1,1,'New Yeller',.5)Weld(aura,bl) | |
783 | local msh=Mesh(aura,'s',0,0,0) | |
784 | for i=0,1,.1 do msh.Scale=v3n(2,2,2)*i wait()end | |
785 | holding=true | |
786 | local tr=0 | |
787 | local li={} | |
788 | local r=1.5 | |
789 | local pt=tick() | |
790 | local function ran()return l(bl,mr(-r,r),mr(-r,r),mr(-r,r),mr(-PI,PI),mr(-PI,PI),mr(-PI,PI))end | |
791 | for i=1,6 do | |
792 | local pp=Part(.1,.1,.1,'New Yeller',.5)_1.Anchored=true _1.Material='Neon' | |
793 | pp.CFrame=ran() | |
794 | table.insert(li,pp) | |
795 | end | |
796 | ---Make aura glow | |
797 | Spawn(function() | |
798 | ||
799 | while wait()do | |
800 | for i=0,.5,.1 do aura.Transparency=.5+i/2 | |
801 | for _,v in next,li do v.CFrame=ran() end | |
802 | wait()end | |
803 | for i=.5,0,-.1 do aura.Transparency=.5+i/2 | |
804 | for _,v in next,li do v.CFrame=ran() end | |
805 | wait()end | |
806 | end end) | |
807 | ||
808 | while holding do | |
809 | ---Positioning laser--- | |
810 | local mag=(l(bl).p-mouse.hit.p).magnitude | |
811 | laz.Size=v3n(.1,mag,.1) | |
812 | laz.CFrame = (cfn(l(bl).p,mouse.hit.p)*cfn(0,0,-mag/2))*ang(PI/2) | |
813 | ||
814 | ---Damaging--- | |
815 | for _,hum in next,findHum(mouse.hit.p,3) do | |
816 | -- hum:TakeDamage(1) | |
817 | -- if not hum.Torso:FindFirstChild'Umpalumpa'then | |
818 | ||
819 | --Turn them to androids and anchor em still-- | |
820 | local android=hum.Torso:FindFirstChild'android' | |
821 | ||
822 | if not android then | |
823 | ||
824 | ||
825 | local pp=Part(1,1,1,'New Yeller',.5)Weld(pp,hum.Torso,0,0,0,0,PI) | |
826 | _1.Name='android' | |
827 | local ring = Part(1,1,1,'',1)ring.Parent=pp | |
828 | local ring2 = Part(1,1,1,'New Yeller',.5)ring.Parent=pp | |
829 | ring2.Parent=ring | |
830 | local sx,sy,sz=6,2,6 | |
831 | Mesh(ring,'cyl',sx+.25,sy,sz+.25) | |
832 | Mesh(ring2,mesh_ids.ring,sx,sz,sy*6) | |
833 | Weld(ring,pp,ang(PI/2),ang(PI/2)).DesiredAngle=9e+009 | |
834 | Weld(ring2,ring,ang(PI/2)) | |
835 | for _,face in next,Enum.NormalId:GetEnumItems() do | |
836 | if face.Name~="Top"and face.Name~="Bottom" then | |
837 | ||
838 | New"Texture"{_P=ring;Face=face;Texture='rbxassetid://33092505';} | |
839 | end | |
840 | end | |
841 | pp.Parent=hum.Torso | |
842 | Mesh(pp,'s',5,7,5) | |
843 | local cnt=New"NumberValue"{_P=pp;Name='cnt'} | |
844 | local huhu=hum | |
845 | local cf=huhu.Torso.CFrame | |
846 | local o1,o2=huhu.WalkSpeed,huhu.JumpPower | |
847 | huhu.WalkSpeed=0 | |
848 | huhu.JumpPower=0 | |
849 | local bp=New"BodyPosition"{_P=hum.Torso;MaxForce=v3n(1,1,1)*9e+009; | |
850 | position=hum.Torso.Position;Name='Umpalumpa'} | |
851 | Spawn(function() | |
852 | repeat | |
853 | -- pcall(function()huhu.Torso.Anchored=true end) | |
854 | -- pp.CFrame=cf | |
855 | pcall(function()pp.Parent.Anchored=false end) | |
856 | cnt.Value=cnt.Value-1 | |
857 | wait'.5' | |
858 | until cnt.Value <= 0 | |
859 | huhu.WalkSpeed,huhu.JumpPower=o1,o2 | |
860 | pcall(function()bp:Destroy() end) | |
861 | for i=.5,1,.1 do | |
862 | pp.Transparency=i | |
863 | ring2.Transparency=i | |
864 | wait() | |
865 | end pp:Destroy() | |
866 | end) | |
867 | Debris:AddItem(pp,7) | |
868 | else | |
869 | android.cnt.Value=.5 | |
870 | end | |
871 | ||
872 | ---Backup stucking--- | |
873 | ||
874 | -- Debris:AddItem(bp,.25) --end | |
875 | end | |
876 | -- 'rbxassetid://430059354' | |
877 | ---Cross effect--- | |
878 | local bl=Part(1,1,1,nil,.5)Mesh(_1,'s') | |
879 | local bl2=Part(1,1,1,nil,.5)Mesh(_1,'s') | |
880 | Edit{bl,bl2}{Anchored=true;BrickColor=bcol'New Yeller'} | |
881 | ||
882 | bl.CFrame=cfn(mouse.hit.p,l(Torso).p)*ang(0,PI/2) | |
883 | bl2.CFrame=l(bl,0,0,0,PI/2) | |
884 | -- bl3.CFrame=l(bl2,0,0,0,0,PI/2) | |
885 | ||
886 | Spawn(function() | |
887 | for i=0,1,.1 do | |
888 | for _,v in next,{bl,bl2}do | |
889 | pcall(function()v.Mesh.Scale=v3n(1,10,1)*i end) | |
890 | v.Transparency=i | |
891 | end wait() | |
892 | end bl:Destroy()bl2:Destroy() end) | |
893 | ||
894 | ---Ring efect beneath you | |
895 | local gr,gr_pos=Workspace:FindPartOnRay(Ray.new(l(Torso).p,v3n(0,-10)),Char) | |
896 | if (tick()-pt)>.1 then | |
897 | if gr and gr_pos then | |
898 | Part(.1,.1,.1,'New Yeller',.5) | |
899 | ringSFX(cfn(gr_pos)*ang(PI/2),_1,20) | |
900 | end | |
901 | ---"Grow" effect on laser--- | |
902 | Spawn(function() | |
903 | local cl=laz:Clone()cl.Parent=Main | |
904 | local msh=cl.m | |
905 | for i=0,1,.25 do | |
906 | msh.Scale=v3n(1+i*10,1,1+i*10) | |
907 | cl.Transparency=i | |
908 | wait() | |
909 | end | |
910 | cl:Destroy() | |
911 | end) | |
912 | ||
913 | pt=tick() | |
914 | end | |
915 | wait() | |
916 | end | |
917 | ---Clearing up--- | |
918 | for i,v in pairs(t)do v:Destroy()end | |
919 | for i,v in pairs(li)do v:Destroy()end | |
920 | laz:Destroy() | |
921 | for i=1,0,-.1 do msh.Scale=v3n(2,2,2)*i wait()end | |
922 | aura:Destroy() | |
923 | hw.d=cfn() | |
924 | rw.l=0 lw.l=0 | |
925 | end | |
926 | ||
927 | function recurseHum(what) | |
928 | local res | |
929 | local p=what | |
930 | repeat | |
931 | p=p.Parent | |
932 | if p then | |
933 | local hum=p:FindFirstChild'Humanoid' | |
934 | if hum then | |
935 | res=hum | |
936 | break | |
937 | end | |
938 | end | |
939 | until p==nil | |
940 | return res | |
941 | end | |
942 | ||
943 | function galaxy() | |
944 | ||
945 | local function getAllParts(radius) | |
946 | local min,max = math.min,math.max | |
947 | local list={} | |
948 | local pos1,pos2=l(Torso,-15,-2,-15).p,l(Torso,15,2,15).p | |
949 | local reg=Region3.new(v3n(min(pos1.x,pos2.x),min(pos1.y,pos2.y),min(pos1.z,pos2.z)), | |
950 | v3n(max(pos1.x,pos2.x),max(pos1.y,pos2.y),max(pos1.z,pos2.z))) | |
951 | for i,v in pairs(Workspace:FindPartsInRegion3WithIgnoreList(reg,{Char})) do | |
952 | if (v.Position-Torso.Position).magnitude<radius and v.Name~='Base' then | |
953 | table.insert(list,v) | |
954 | end | |
955 | end | |
956 | return list | |
957 | end | |
958 | ||
959 | local orig_ws=Humanoid.WalkSpeed | |
960 | WalkSpeed=0 | |
961 | Edit{rw,lw,rw2,lw2,tw}{l=1} | |
962 | tw.d=ang(md'-45') | |
963 | -- rw.d=ang(md'-45',0,md'25') | |
964 | rw.d=ang(md'50',0,md'25')*ang(0,md'15') | |
965 | lw.d=ang(md'-45',0,md'-25') | |
966 | -- hw.d=ang(0,0,md'15') | |
967 | hw.d=cfn(0,.05,0) | |
968 | rw2.d=ang(PI/4,0,md'15') | |
969 | lw2.d=ang(PI/4,0,-md'15') | |
970 | Humanoid.HipHeight=-1.5 | |
971 | local linese={} | |
972 | local spinners={} | |
973 | ||
974 | ---Rings--- | |
975 | for a=-90,90,45 do | |
976 | local cyl=Part(1,1,1,'',1)Mesh(cyl,'cyl',10,1,10) | |
977 | local ww=Weld(cyl,HumRoot,0,0,0,md(a)) | |
978 | table.insert(spinners,ww) | |
979 | table.insert(linese,cyl) | |
980 | end | |
981 | for a=-90,90,45 do | |
982 | local cyl=Part(1,1,1,'',1)Mesh(cyl,'cyl',10,1,10) | |
983 | local ww=Weld(cyl,HumRoot,0,0,0,0,0,md(a)) | |
984 | table.insert(spinners,ww) | |
985 | table.insert(linese,cyl) | |
986 | end | |
987 | for i,v in pairs(linese)do | |
988 | for _,face in next,Enum.NormalId:GetEnumItems() do | |
989 | if face.Name~='Top'and face.Name~='Bottom' then | |
990 | New"Texture"{_P=v;Texture='rbxassetid://'..180728579-1;Face=face;Transparency=0; | |
991 | StudsPreTileU=1;} | |
992 | end | |
993 | end end | |
994 | ||
995 | ---Spheres--- | |
996 | for i=0,1,1/6 do | |
997 | local p=Part(1,1,1,'New Yeller',.9)p.Material='Neon' | |
998 | Mesh(p,'s',i*9,i*9,i*9) | |
999 | table.insert(spinners,Weld(p,Torso)) | |
1000 | for _,face in next,Enum.NormalId:GetEnumItems() do | |
1001 | New"Decal"{_P=p;Face=face;Texture='rbxassetid://'..124291850-1;Transparency=.5} | |
1002 | end | |
1003 | end | |
1004 | base_spd = .025 | |
1005 | deviation = 1 | |
1006 | local ptick=tick() | |
1007 | holding=true | |
1008 | ---Mainloop--- | |
1009 | while holding do | |
1010 | ---Spin--- | |
1011 | for o,weld in next,spinners do | |
1012 | weld.C1 = weld.C1 * ang(0,(o%2==0 and -1 or 1)*base_spd) | |
1013 | end | |
1014 | ||
1015 | --Move parts away from you--- | |
1016 | for _,part in next,getAllParts(7) do | |
1017 | ||
1018 | local hum=recurseHum(part) | |
1019 | if hum and (hum.Torso.Position-Torso.Position).magnitude <= 10 then | |
1020 | local rot=l(hum.Torso)-l(hum.Torso).p | |
1021 | hum.Torso.CFrame=cfn((cfn(hum.Torso.CFrame.p,Torso.CFrame.p)*cfn(0,0,5)).p)*rot | |
1022 | break | |
1023 | else | |
1024 | local rot=l(part)-l(part).p | |
1025 | part.CFrame=cfn((cfn(part.CFrame.p,Torso.CFrame.p)*cfn(0,0,5)).p)*rot | |
1026 | end | |
1027 | end | |
1028 | ||
1029 | ---Heal others--- | |
1030 | if (tick()-ptick)>.25 then | |
1031 | ||
1032 | for _,hum in next,findHum(Torso.Position,20) do | |
1033 | hum:TakeDamage(-5) | |
1034 | local mag=(l(hum.Torso).p-l(Torso).p).magnitude | |
1035 | local bl=Part(.1,mag,.1,'Lime green',.75)bl.Material='Neon' | |
1036 | bl.Anchored=true | |
1037 | local msh=Mesh(_1,'s') | |
1038 | bl.CFrame=l(cfn(l(Torso).p,l(hum.Torso).p),0,0,-mag/2)*ang(PI/2) | |
1039 | local momo=godly(hum.Parent,'Lime green',.9) | |
1040 | Spawn(function() ---Fade out beam--- | |
1041 | local scales={} | |
1042 | for _,v in pairs(momo:children())do table.insert(scales,v.Mesh.Scale) end | |
1043 | for i=0,1,.05 do | |
1044 | for i2,v in pairs(momo:children())do | |
1045 | v.Mesh.Scale=scales[i2]+(v3n(.05,.05,.05)*i) | |
1046 | v.Transparency=.9+(.1*i) | |
1047 | end | |
1048 | bl.Transparency=.75+i*(1-.75) | |
1049 | msh.Scale=v3n(1+i*5,1,1+i*.5) | |
1050 | wait() | |
1051 | end | |
1052 | momo:Destroy() | |
1053 | bl:Destroy()end) | |
1054 | end | |
1055 | ptick=tick() | |
1056 | end | |
1057 | ---Heal yourself--- | |
1058 | Humanoid:TakeDamage(-5) | |
1059 | wait() | |
1060 | end | |
1061 | for _,v in pairs(spinners)do v.Parent:Destroy()end | |
1062 | Humanoid.HipHeight=0 | |
1063 | hw.d=cfn() | |
1064 | WalkSpeed=orig_ws | |
1065 | Edit{rw,lw,rw2,lw2,tw}{l=0} | |
1066 | ||
1067 | end | |
1068 | function godly(tar,color,tr) | |
1069 | local function getM(a) | |
1070 | local res=nil | |
1071 | for i,v in pairs(a:children())do | |
1072 | if v.className:match'Mesh' then | |
1073 | res=v | |
1074 | end | |
1075 | end return res | |
1076 | end | |
1077 | local godo=New"Model"{_P=Main} | |
1078 | set_parent=godo | |
1079 | local trlist={} | |
1080 | for i,v in next,(tar and tar:children() or Char:children()) do | |
1081 | if v:IsA'Part' and v.Name~='HumanoidRootPart' then | |
1082 | if v.Name =='Head'then | |
1083 | local pp=Part(1,1,1,color or 'New Yeller',tr or .9)pp.Material='Neon' | |
1084 | pp.Size=v.Size | |
1085 | Weld(pp,v) | |
1086 | local mesh=v.Mesh:Clone()mesh.Parent=pp | |
1087 | mesh.Scale=mesh.Scale*1.1 | |
1088 | table.insert(trlist,mesh.Scale) | |
1089 | else | |
1090 | local pp=Part(1,1,1,color or 'New Yeller',tr or .9)_1.Material='Neon' | |
1091 | pp.Size=v.Size Weld(pp,v) | |
1092 | local msh=Mesh(pp,'bl') | |
1093 | msh.Scale=msh.Scale*1.1 | |
1094 | table.insert(trlist,msh.Scale) | |
1095 | end | |
1096 | elseif v:IsA'Hat'then | |
1097 | local pp=Part(.1,.1,.1,color or 'New Yeller',tr or .9)_1.Material='Neon' | |
1098 | Weld(pp,v.Handle) | |
1099 | local mesh=getM(v.Handle):Clone() | |
1100 | mesh.TextureId='' | |
1101 | mesh.Scale=mesh.Scale+(mesh.Scale*.01) | |
1102 | mesh.Parent=pp | |
1103 | table.insert(trlist,mesh.Scale) | |
1104 | end | |
1105 | end | |
1106 | set_parent=nil | |
1107 | return godo,trlist | |
1108 | end | |
1109 | ||
1110 | main_aura,main_aura_tr=godly() | |
1111 | ||
1112 | function hammer(mouse) | |
1113 | Edit{rw,lw,rw2,lw2,tw}{l=1} | |
1114 | tw.d=cfn()*ang(md'25') | |
1115 | Humanoid.HipHeight=.25 | |
1116 | rw2.d=cfn(0,-.05,0)*ang(md'25') | |
1117 | lw2.d=ang(md'-25') | |
1118 | rw.d=cfn(0,0,-.25)*ang(PI/2+md'25',0,md'-45') | |
1119 | lw.d=cfn(0,0,-.25)*ang(PI/2+md'25',0,md'45') | |
1120 | hw.d=cfn(0,-1,0)*ang(PI/2,md'45') | |
1121 | wait(1) | |
1122 | local ppos=l(HumRoot,0,0,-5).p | |
1123 | for _,hum in next,findHum(ppos,30) do | |
1124 | Spawn(function()hum.PlatformStand=true wait'.1'hum.PlatformStand=false end) | |
1125 | hum.Torso.Velocity=v3n(0,100,0) | |
1126 | end | |
1127 | ||
1128 | rw.d=cfn(0,0,-.25)*ang(PI/2+md'45',0,md'-45') | |
1129 | lw.d=cfn(0,0,-.25)*ang(PI/2+md'45',0,md'45') | |
1130 | tw.d=ang(md'-45') | |
1131 | lw2.d=ang(md'-55') | |
1132 | local bv=New"BodyVelocity"{_P=Torso,velocity=HumRoot.CFrame.lookVector*-30} | |
1133 | ||
1134 | local gr,gr_p=Workspace:FindPartOnRay(Ray.new(ppos,v3n(0,-10,0)),Char) | |
1135 | -- ge,ge_p=nil,nil | |
1136 | ||
1137 | if not gr or not gr_p then | |
1138 | hw.d=cfn() | |
1139 | Edit{rw,lw,rw2,lw2,tw}{l=0} | |
1140 | return end | |
1141 | ||
1142 | local volcano=Part(1,1,1,'Crimson')volcano.Anchored=true | |
1143 | volcano.CFrame=cfn(gr_p) | |
1144 | local cf =volcano.CFrame | |
1145 | local r=100 | |
1146 | Spawn(function() | |
1147 | for i=1,5 do | |
1148 | local pp=Part(3,3,3,'White')pp.Material='Slate' | |
1149 | local msh=Mesh(pp,mesh_ids.rock)msh.Scale=v3n(.6,.6,.6)*pp.Size | |
1150 | msh.TextureId = mesh_texs.rock | |
1151 | msh.VertexColor=v3n(1,0,0) | |
1152 | pp.CanCollide=true | |
1153 | New"Fire"{_P=pp;Size=4.5;Heat=0} | |
1154 | pp.CFrame=l(cf,0,0,0,mr(-md'15',md'15'),0,mr(-md'15',md'15'))*cfn(0,0,1) | |
1155 | pp:BreakJoints() | |
1156 | pp.Velocity=l(cf,0,0,0,mr(-4,4),mr(-4,4),mr(-4,4)).lookVector*40+v3n(0,50,0) | |
1157 | New"BodyForce"{_P=pp;Name='F';Force=v3n(0,(m.float*pp:GetMass())*.75,0)} | |
1158 | New"BodyAngularVelocity"{_P=pp;angularvelocity=v3n(4,4,4)*PI*4} | |
1159 | Delay(1,function() | |
1160 | for i=1,3 do | |
1161 | local p=pp:Clone() | |
1162 | p.Size=v3n(1,1,1) | |
1163 | p.Parent=Main | |
1164 | p.F.Force=v3n(0,p:GetMass()*m.float*1.25,0) | |
1165 | p.Velocity=cfn(p.Position,mouse.hit.p).lookVector*200 | |
1166 | p.Touched:connect(function(hit) | |
1167 | if hit:IsDescendantOf(Char) then return end | |
1168 | local e=Instance.new("Explosion",Workspace) | |
1169 | e.BlastPressure=0 | |
1170 | e.BlastRadius = 7 | |
1171 | e.Position=p.Position | |
1172 | e.Hit:connect(function(hit) | |
1173 | local hum=hit.Parent:FindFirstChild'Humanoid' | |
1174 | if hum and hum.Parent~=Char then | |
1175 | hum:TakeDamage(2) | |
1176 | end end) | |
1177 | p:Destroy() | |
1178 | end) | |
1179 | ||
1180 | Debris:AddItem(p,2) | |
1181 | end | |
1182 | pp:Destroy() | |
1183 | end) | |
1184 | wait() | |
1185 | end | |
1186 | end) | |
1187 | ||
1188 | ringSFX(l(volcano,0,0,0,PI/2),volcano,40,.025) | |
1189 | wait(1) | |
1190 | bv:Destroy() | |
1191 | ||
1192 | hw.d=cfn() | |
1193 | Edit{rw,lw,rw2,lw2,tw}{l=0} | |
1194 | end | |
1195 | ||
1196 | stealthed=false | |
1197 | re=nil | |
1198 | ||
1199 | function ballSFX(cf,part,scale,from,to,dir) | |
1200 | part.Anchored=true | |
1201 | part.CFrame=cf | |
1202 | local msh=Mesh(part,'s',0,0,0) | |
1203 | for i=from,to,dir do | |
1204 | msh.Scale=v3n(scale,scale,scale)*i | |
1205 | wait() | |
1206 | end | |
1207 | end | |
1208 | ||
1209 | function stealth() | |
1210 | stealthed=not stealthed | |
1211 | local tt=main_aura_tr | |
1212 | if stealthed then | |
1213 | re = hideAllParts(Char,0) | |
1214 | emitter.Enabled=false | |
1215 | ---Shrink--- | |
1216 | for i=0,1,.1 do | |
1217 | Edit(main_aura:children()){ | |
1218 | Transparency=.9+(i*.1); | |
1219 | ['Mesh.Scale'] = v3n(1,1,1)*(1-i); | |
1220 | } | |
1221 | wait() | |
1222 | end | |
1223 | else | |
1224 | ---Expand--- | |
1225 | for i=0,1,.1 do | |
1226 | Edit(main_aura:children()){ | |
1227 | Transparency=1-(.1*i); | |
1228 | -- ['Mesh.Scale']=(v3n(1.1,1.1,1.1)*i); | |
1229 | } | |
1230 | for o,v in pairs(main_aura:children())do | |
1231 | v.Mesh.Scale=tt[o]*i | |
1232 | end | |
1233 | wait() | |
1234 | end | |
1235 | re() | |
1236 | emitter.Enabled=true | |
1237 | end | |
1238 | end | |
1239 | ||
1240 | function conjure() | |
1241 | c_cf=l(Torso,0,0,-5) | |
1242 | set_anchor = true | |
1243 | mp = Part(.15,1,.15) | |
1244 | mp.CFrame=c_cf | |
1245 | blade = Part(1,4,.25) | |
1246 | _1.CFrame=l(mp,0,.5+2) | |
1247 | Mesh(_1,'bl',1,1,.5) | |
1248 | cp = Part(.8,3.8,.25,'White') | |
1249 | New"Texture"{_P=cp;Face='Back';Texture='rbxassetid://33092538'} | |
1250 | New"Texture"{_P=cp;Face='Front';Texture='rbxassetid://33092538'} | |
1251 | cp.CFrame=l(blade) | |
1252 | Mesh(_1,'bl',1,1,.55) | |
1253 | ||
1254 | tip1=Wedge(.25,1,.5) | |
1255 | _1.CFrame=l(blade,.25,2+_1.Size.y/2,0,0,-PI/2) | |
1256 | Mesh(_1,'w',.5,1,1) | |
1257 | tip2=Wedge(.25,1,.5) | |
1258 | _1.CFrame=l(blade,-.25,2+_1.Size.y/2,0,0,PI/2) | |
1259 | Mesh(_1,'w',.5,1,1) | |
1260 | set_anchor = nil | |
1261 | end | |
1262 | -- conjure() | |
1263 | ||
1264 | ||
1265 | holding=false | |
1266 | attacking=false | |
1267 | klist={ | |
1268 | f=slash; | |
1269 | qq=laser; | |
1270 | cq=galaxy; | |
1271 | r=hammer; | |
1272 | z=stealth; | |
1273 | x=conjure; | |
1274 | } | |
1275 | ||
1276 | Humanoid.Died:connect(function() | |
1277 | local bl=Part(10,10,10)bl.Anchored=true | |
1278 | bl.CFrame=l(Torso) | |
1279 | for _,v in pairs(Char:children())do | |
1280 | if v:IsA'BasePart'then | |
1281 | v.Touched:connect(function(a) | |
1282 | local h=recurseHum(a) | |
1283 | if h and h.Parent~=Char then h.Health=0 end | |
1284 | end) | |
1285 | end | |
1286 | end | |
1287 | for i,v in pairs(findHum(Torso.Position,10))do | |
1288 | v.Parent:BreakJoints() | |
1289 | end | |
1290 | Mesh(bl,'s') | |
1291 | Spawn(function() | |
1292 | for i=0,1,.1 do | |
1293 | Edit{bl}{Transparency=i} | |
1294 | wait() | |
1295 | end | |
1296 | end) | |
1297 | end) | |
1298 | ||
1299 | -- rbxassetid://430066606 mesh | |
1300 | -- rbxassetid://430066609 tex | |
1301 | ||
1302 | -- New"FileMesh"{_P=character.Head;MeshId='rbxassetid://430066606'} | |
1303 | ||
1304 | holding=false | |
1305 | Mouse.KeyUp:connect(function(key) | |
1306 | if key=='0' then dash=false else | |
1307 | for i,v in pairs(klist)do | |
1308 | if key == i:sub(1,1) and i:sub(2,2) == 'q' then | |
1309 | holding=false | |
1310 | end | |
1311 | end | |
1312 | end | |
1313 | end) | |
1314 | Mouse.KeyDown:connect(function(key) | |
1315 | if attacking then return end | |
1316 | attacking=true | |
1317 | if key=='0' then dash=true else | |
1318 | for i,v in pairs(klist)do | |
1319 | if key==i:sub(1,1) then | |
1320 | v(Mouse) | |
1321 | end | |
1322 | end | |
1323 | end | |
1324 | attacking=false | |
1325 | end) | |
1326 | ||
1327 | for i,v in next,getfenv(0) do | |
1328 | if i:match('_con') then | |
1329 | table.insert(Connections,v) | |
1330 | end | |
1331 | end | |
1332 | New"BindableFunction"{_P=script;Name='stop'}.OnInvoke=function()for i,v in pairs(Connections)do v:disconnect()end end | |
1333 | ||
1334 | script.Name='god_script: '..Player.Name | |
1335 | end |