danielaust

Sans better3

Apr 19th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
  6.  
  7. pls=game:GetService'Players';
  8. rs=game:GetService'RunService';
  9. uinps=game:GetService'UserInputService';
  10. lp=pls.LocalPlayer;
  11. mouse=lp:GetMouse();
  12. c=lp.Character;
  13. rayModel=Instance.new('Model',c);
  14. human=c.Humanoid;
  15. Cone=nil;
  16. human.MaxHealth=5000;
  17. wait();
  18. human.Health=5000;
  19. c.Health:Destroy();
  20. Debounces={
  21. FPS=0;
  22. isAttacking=false;
  23. isMoving=false;
  24. isSprinting=false;
  25. Debounce=false;
  26. isTyping=false;
  27. isJumping=false;
  28. isFlash=false;
  29. };
  30. numLerp=function(start,goal,alpha)
  31. return(((goal-start)*alpha)+start);
  32. end;
  33. CFrameZero=function()
  34. return CFrame.new(Vector3.new());
  35. end;
  36. local function a()
  37. local t=tick();
  38. local l=t%1*3;
  39. local t=.5*math.pi*(l%1);
  40. if l<1 then
  41. return Color3.new(1,1-math.cos(t),1-math.sin(t));
  42. elseif l<2 then
  43. return Color3.new(1-math.sin(t),1,1-math.cos(t));
  44. else
  45. return Color3.new(1-math.cos(t),1-math.sin(t),1);
  46. end;
  47. end;
  48. rad=function(value)
  49. return math.rad(value);
  50. end;
  51. CFAngles=function(Vector)
  52. return CFrame.Angles(rad(Vector.x),rad(Vector.y),rad(Vector.z));
  53. end;
  54. AnimStat={
  55. lerpSpeed=.2;
  56. lerpSpeed2=.35;
  57. lerpTween=0;
  58. };
  59. Joints={
  60. c.HumanoidRootPart.RootJoint;
  61. c.Torso.Neck;
  62. c.Torso['Left Shoulder'];
  63. c.Torso['Right Shoulder'];
  64. c.Torso['Left Hip'];
  65. c.Torso['Right Hip'];
  66. };
  67. JointTargets={
  68. CFrameZero();
  69. CFrameZero();
  70. CFrameZero();
  71. CFrameZero();
  72. CFrameZero();
  73. CFrameZero();
  74. };
  75. prepareCharacter=function()
  76. music=Instance.new('Sound',c.HumanoidRootPart);
  77. music.SoundId='rbxassetid://394144904';
  78. music.Looped=true;
  79. music.Volume=.6;
  80. music2=Instance.new('Sound',c);
  81. music2.SoundId='rbxassetid://259613634';
  82. music2.Looped=true;
  83. music2.Volume=1;
  84. music3=Instance.new('Sound',c.HumanoidRootPart);
  85. music3.SoundId='rbxassetid://266530326';
  86. music3.Looped=true;
  87. music3.Volume=1;
  88. music4=Instance.new('Sound',c.HumanoidRootPart);
  89. music4.SoundId='rbxassetid://155738252';
  90. music4.Looped=true;
  91. music4.Volume=1;
  92. music5=Instance.new('Sound',c.HumanoidRootPart);
  93. music5.SoundId='rbxassetid://215391212';
  94. music5.Looped=true;
  95. music5.Volume=1;
  96. human.WalkSpeed=0;
  97. human.JumpPower=0;
  98. for i,v in pairs(c:children())do
  99. if v:isA'Hat'then v:Destroy();end;
  100. if v:FindFirstChild'roblox'then v.roblox:Destroy();end;
  101. if v.Name=='Head'then v.Transparency=1 for _,x in pairs(v:children())do if x.ClassName=='Sound'then x:Destroy();end;end;end;
  102. if v:FindFirstChild'face'then v.face:Destroy();end;
  103. if v:isA'Part'then v.BrickColor=BrickColor.new'White';end;
  104. end
  105. local shirt=c:FindFirstChild'Shirt'or Instance.new('Shirt',c);
  106. local pants=c:FindFirstChild'Pants'or Instance.new('Pants',c);
  107. shirt.ShirtTemplate='rbxassetid://334755544';
  108. pants.PantsTemplate='rbxassetid://315964941';
  109. local Head=Instance.new('Part',c);
  110. Head.Size=Vector3.new(2.5,2.5,1);
  111. Head.Transparency=1;
  112. Head:BreakJoints();
  113. local hw=Instance.new('Weld',c.Head);
  114. hw.Part0=c.Head;
  115. hw.Part1=Head;
  116. hw.C0=CFrame.new(0,.3,0);
  117. faceDecal=Instance.new('Decal',Head);
  118. faceDecal.Face=Enum.NormalId.Front;
  119. faceDecal.Texture='rbxassetid://400387868';
  120. local backDecal=Instance.new('Decal',Head);
  121. backDecal.Face=Enum.NormalId.Back;
  122. backDecal.Texture='rbxassetid://400377807';
  123. local mes=Instance.new('BlockMesh',Head);
  124. mes.Scale=Vector3.new(1,1,.4);
  125. local Anim=human:FindFirstChild'Animator'
  126. if Anim then Anim:Destroy();end;
  127. end;
  128. setJointCFrames=function(table)
  129. for i=1,#table do
  130. JointTargets[i]=table[i];
  131. end;
  132. end;
  133. triWave=function(x)
  134. local pi2=math.pi/2;
  135. return math.abs((x/pi2)%4-2)-1;
  136. end;
  137. setLerp=function(speed)
  138. AnimStat.lerpSpeed=speed;
  139. end;
  140. setTween=function(tween)
  141. AnimStat.lerpTween=tween;
  142. end;
  143. playSound=function(id,part,vol,pitch)
  144. local vol=vol or 1;
  145. local pitch=pitch or 1;
  146. local x=Instance.new('Sound',part);
  147. x.Volume=vol;
  148. x.Pitch=pitch;
  149. x.SoundId='rbxassetid://'..id;
  150. spawn(function()
  151. wait();
  152. x:Play();
  153. wait(x.TimeLength+.2);
  154. x:Destroy();
  155. end);
  156. end;
  157. lerpBoom=function()
  158. if Cone then
  159. Cone.CFrame=CFrame.new(c.HumanoidRootPart.CFrame.p,c.HumanoidRootPart.CFrame.p+c.HumanoidRootPart.Velocity)*CFrame.Angles(-math.pi/2,0,0);
  160. cMesh.Scale=Vector3.new(20,20+c.HumanoidRootPart.Velocity.magnitude/10,20);
  161. Cone.Transparency=1-c.HumanoidRootPart.Velocity.magnitude/1000;
  162. else
  163. Cone=Instance.new('Part',c);
  164. Cone.Anchored=true;
  165. Cone.CanCollide=false;
  166. Cone.Transparency=math.random(50,70)/100;
  167. Cone.Size=Vector3.new(1,1,1);
  168. Cone.CFrame=CFrame.new(c.HumanoidRootPart.CFrame.p,c.HumanoidRootPart.CFrame.p+c.HumanoidRootPart.Velocity)*CFrame.Angles(-math.pi/2,0,0);
  169. cMesh=Instance.new('SpecialMesh',Cone);
  170. cMesh.MeshId='rbxassetid://1033714';
  171. cMesh.Scale=Vector3.new(20,50,20);
  172. end;
  173. end;
  174. noBoom=function()
  175. if Cone then local x=Cone Cone=nil;
  176. for i=1,20 do
  177. wait();
  178. x.Mesh.Scale=x.Mesh.Scale+Vector3.new(-.5,1,-.5);
  179. x.Transparency=x.Transparency+1/30;
  180. end;
  181. end;
  182. end;
  183. gasterBlast=function(tCFrame,aimPos,charge)
  184. local aimTarget;
  185. if aimPos then
  186. aimTarget=CFrame.new(tCFrame,aimPos);
  187. else
  188. aimTarget=tCFrame;
  189. end;
  190. local gast=Instance.new('Part',c);
  191. gast.Size=Vector3.new(12,.2,12);
  192. gast.CanCollide=false;
  193. gast.Anchored=true;
  194. gast.Transparency=1;
  195. if charge then
  196. playSound(400523331,gast,math.random(90,110)/100);
  197. end;
  198. wait();
  199. for i=1,2 do
  200. local decal=Instance.new('Decal',gast);
  201. decal.Texture='rbxassetid://323497117';
  202. if i==1 then
  203. decal.Face=Enum.NormalId.Top;
  204. else
  205. decal.Face=Enum.NormalId.Bottom;
  206. end;
  207. end;
  208. gast.CFrame=CFrame.new(aimTarget.p-Vector3.new(math.sin(tick()*10)*10,20,math.cos(tick()*10)*10));
  209. spawn(function()
  210. local tarCFrame=gast.CFrame;
  211. local isLooping=true;
  212. spawn(function()
  213. while rs.RenderStepped:wait()and isLooping do
  214. gast.CFrame=gast.CFrame:lerp(tarCFrame,.6/(Debounces.FPS/60));
  215. end;
  216. end);
  217. for i=1,30 do
  218. wait();
  219. tarCFrame=gast.CFrame:lerp(aimTarget,.24);
  220. end;
  221. playSound(340722848,gast,math.random(90,110)/100);
  222. isLooping=false;
  223. wait(.08);
  224. local ray=Ray.new(aimTarget.p,aimTarget.lookVector.unit*999);
  225. local _,pos=workspace:FindPartOnRay(ray,c);
  226. local dis=(aimTarget.p-pos).magnitude;
  227. local rayCFrame=CFrame.new(gast.CFrame.p+(pos-gast.CFrame.p).unit*(dis/2+200),gast.CFrame.p+(pos-gast.CFrame.p).unit*dis*2)*CFrame.Angles(0,math.pi/2,0);
  228. local rayPart=Instance.new('Part',rayModel);
  229. rayPart.Material='Neon';
  230. rayPart.FormFactor='Custom';
  231. rayPart.Color=a();
  232. rayPart.Anchored=true;
  233. rayPart.CanCollide=false;
  234. rayPart.Shape='Cylinder';
  235. rayPart.Size=Vector3.new(dis+400,8,8);
  236. rayPart.CFrame=rayCFrame;
  237. gast:Destroy();
  238. end);
  239. end;
  240. largegasterBlast=function(tCFrame,aimPos)
  241. local aimTarget;
  242. if aimPos then
  243. aimTarget=CFrame.new(tCFrame,aimPos);
  244. else
  245. aimTarget=tCFrame;
  246. end;
  247. local gast=Instance.new('Part',c);
  248. gast.Size=Vector3.new(25,.2,25);
  249. gast.CanCollide=false;
  250. gast.Anchored=true;
  251. gast.Transparency=1;
  252. playSound(400523331,gast,math.random(85,97)/100);
  253. wait();
  254. for i=1,2 do
  255. local decal=Instance.new('Decal',gast);
  256. decal.Texture='rbxassetid://323497117';
  257. if i==1 then
  258. decal.Face=Enum.NormalId.Top;
  259. else
  260. decal.Face=Enum.NormalId.Bottom;
  261. end;
  262. end;
  263. gast.CFrame=CFrame.new(aimTarget.p-Vector3.new(math.sin(tick()*10)*10,20,math.cos(tick()*10)*10));
  264. spawn(function()
  265. local tarCFrame=gast.CFrame;
  266. local isLooping=true;
  267. spawn(function()
  268. while rs.RenderStepped:wait()and isLooping do
  269. gast.CFrame=gast.CFrame:lerp(tarCFrame,.6/(Debounces.FPS/60));
  270. end;
  271. end);
  272. for i=1,40 do
  273. wait();
  274. tarCFrame=gast.CFrame:lerp(aimTarget,.18);
  275. end;
  276. playSound(340722848,gast,math.random(80,95)/100);
  277. isLooping=false;
  278. wait(.08);
  279. local ray=Ray.new(aimTarget.p,aimTarget.lookVector.unit*999);
  280. local _,pos=workspace:FindPartOnRay(ray,c);
  281. local dis=(aimTarget.p-pos).magnitude;
  282. local rayCFrame=CFrame.new(gast.CFrame.p+(pos-gast.CFrame.p).unit*(dis/2+200),gast.CFrame.p+(pos-gast.CFrame.p).unit*dis*2)*CFrame.Angles(0,math.pi/2,0);
  283. local rayPart=Instance.new('Part',rayModel);
  284. rayPart.Material='Neon';
  285. rayPart.FormFactor='Custom';
  286. rayPart.Color=a();
  287. rayPart.Anchored=true;
  288. rayPart.CanCollide=false;
  289. rayPart.Shape='Cylinder';
  290. rayPart.Size=Vector3.new(dis+400,17,17);
  291. rayPart.CFrame=rayCFrame;
  292. gast:Destroy();
  293. end);
  294. end;
  295. prepareCharacter();
  296. spawn(function()
  297. local sine=0;
  298. while wait()do
  299. if Debounces.isFlash then
  300. if(tick()*8)%2>1 then
  301. faceDecal.Texture='rbxassetid://400377503';
  302. else
  303. faceDecal.Texture='rbxassetid://400387868';
  304. end;
  305. else
  306. faceDecal.Texture='rbxassetid://400387868';
  307. end;
  308. if Debounces.isAttacking==false and Debounces.isMoving==false and Debounces.Debounce==false and Debounces.isJumping==false then
  309. setLerp(.8);
  310. local spasm=math.abs(math.sin(tick()*20))*1.1;
  311. local spasm2=math.abs(math.sin(tick()*20-2))*1.1;
  312. local spasm3=math.abs(math.sin(tick()*20-2.3))*1.1;
  313. setJointCFrames({
  314. CFrame.new(Vector3.new(0,0-spasm,0))*CFAngles(Vector3.new(0,0,0));
  315. CFrame.new(Vector3.new(0,1.5,0))*CFAngles(Vector3.new(-0.011,-0.502,-1.177));
  316. CFrame.new(Vector3.new(-1.5-spasm2^2/3,-0.001,0))*CFAngles(Vector3.new(-2.344,7.899,-2.82+spasm3^2*-60));
  317. CFrame.new(Vector3.new(1.569+spasm2^2/3,0,-0.1))*CFAngles(Vector3.new(4.822,1.123,6.383+spasm3^2*60));
  318. CFrame.new(Vector3.new(-0.61,-2+spasm/1.01,-.15))*CFAngles(Vector3.new(-2.206,0.767,-0.582));
  319. CFrame.new(Vector3.new(0.55,-2+spasm/1.01,-.1))*CFAngles(Vector3.new(-0.026,0.463,3.184));
  320. });
  321. elseif Debounces.isAttacking==false and Debounces.isMoving==true and Debounces.Debounce==false and Debounces.isSprinting==false and Debounces.isJumping==false then
  322. sine=tick()*18;
  323. human.WalkSpeed=120;
  324. setLerp(.35);
  325. setJointCFrames({
  326. CFrame.new(Vector3.new(0,math.sin(sine)/50-.3,0))*CFAngles(Vector3.new(-30-math.sin(sine*2)*3,math.sin(sine*2)*15,0));
  327. CFrame.new(Vector3.new(0,1.48,0.099))*CFAngles(Vector3.new(14.999,-0.001,0));
  328. CFrame.new(Vector3.new(-1.5,-0.001,0.2+math.sin(sine*2+math.pi)*1.2))*CFAngles(Vector3.new(-25.001+math.sin(sine*2+math.pi)*-90,0,-15));
  329. CFrame.new(Vector3.new(1.5,-0.001,0.2+math.sin(sine*2)*1.2))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-90,-0.001,14.999));
  330. CFrame.new(Vector3.new(-0.501,-2+math.cos(sine*2+math.pi)/3,.3+math.sin(sine*2)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-70,0,-0.001));
  331. CFrame.new(Vector3.new(0.499,-2+math.cos(sine*2)/3,.3+math.sin(sine*2+math.pi)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*70,0,0));
  332. });
  333. elseif Debounces.isAttacking==false and Debounces.isMoving==true and Debounces.Debounce==false and Debounces.isSprinting==true and Debounces.isJumping==false then
  334. sine=tick()*28;
  335. human.WalkSpeed=400;
  336. lerpBoom();
  337. setLerp(.65);
  338. setJointCFrames({
  339. CFrame.new(Vector3.new(0,math.sin(sine)/50-.3,0))*CFAngles(Vector3.new(-30-math.sin(sine*2)*3,math.sin(sine*2)*15,0));
  340. CFrame.new(Vector3.new(0,1.48,0.099))*CFAngles(Vector3.new(14.999,-0.001,0));
  341. CFrame.new(Vector3.new(-1.5,-0.001,0.2+math.sin(sine*2+math.pi)*1.2))*CFAngles(Vector3.new(-25.001+math.sin(sine*2+math.pi)*-90,0,-15));
  342. CFrame.new(Vector3.new(1.5,-0.001,0.2+math.sin(sine*2)*1.2))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-90,-0.001,14.999));
  343. CFrame.new(Vector3.new(-0.501,-2+math.cos(sine*2+math.pi)/3,.3+math.sin(sine*2)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-70,0,-0.001));
  344. CFrame.new(Vector3.new(0.499,-2+math.cos(sine*2)/3,.3+math.sin(sine*2+math.pi)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*70,0,0));
  345. });
  346. elseif Debounces.isJumping==true and Debounces.Debounce==false then
  347. setLerp(.14);
  348. human.WalkSpeed=45;
  349. setJointCFrames({
  350. CFrame.new(Vector3.new(0,0,0))*CFAngles(Vector3.new(-8,0,0));
  351. CFrame.new(Vector3.new(0,1.5,-0.15))*CFAngles(Vector3.new(-10.138,3.687,0.306));
  352. CFrame.new(Vector3.new(-1.23,0.069,-0.56))*CFAngles(Vector3.new(50.809,0.672,18.704));
  353. CFrame.new(Vector3.new(0.929,-0.031,-1.0912))*CFAngles(Vector3.new(63.00,13.85,-36.416));
  354. CFrame.new(Vector3.new(-0.63,-1.82,-0.74))*CFAngles(Vector3.new(31.324,3.424,-1.249));
  355. CFrame.new(Vector3.new(0.619,-1.331,0.82))*CFAngles(Vector3.new(-59.644,0.998,9.776));
  356. });
  357. end;
  358. end;
  359. end);
  360. human.Changed:connect(function(prop)
  361. if prop=='MoveDirection'then
  362. if human.MoveDirection.magnitude>.02 then
  363. Debounces.isMoving=true;
  364. else
  365. Debounces.isMoving=false;
  366. end;
  367. end;
  368. end);
  369. uinps.InputBegan:connect(function(InputObj)
  370. if InputObj.KeyCode==Enum.KeyCode.Slash then
  371. local finishEvent=nil;
  372. Debounces.isTyping=true
  373. finishEvent=uinps.InputBegan:connect(function(InputObj)
  374. if InputObj.KeyCode==Enum.KeyCode.Return or InputObj.UserInputType==Enum.UserInputType.MouseButton1 then
  375. Debounces.isTyping=false;
  376. finishEvent:disconnect();
  377. end;
  378. end);
  379. end;
  380. end);
  381. mouse.KeyDown:connect(function(key)
  382. if key=='0'then
  383. Debounces.isSprinting=true;
  384. playSound(160248522,c.Torso);
  385. for i=1,3 do
  386. spawn(function()
  387. local e=Instance.new('Part',c);
  388. e.Size=Vector3.new(1,1,1);
  389. e.Material='Neon';
  390. e.Color=a();
  391. e.Anchored=true;
  392. e.CFrame=c.HumanoidRootPart.CFrame*CFrame.Angles(0,0,-math.pi/2);
  393. e.CanCollide=false;
  394. local rm=Instance.new('SpecialMesh',e);
  395. rm.MeshType='FileMesh';
  396. rm.MeshId='rbxassetid://3270017';
  397. rm.Scale=Vector3.new(3.2,3.2,10);
  398. for x=1,30 do
  399. wait();
  400. rm.Scale=rm.Scale:lerp(Vector3.new(i*30,i*30,(4-i)*450),.1);
  401. e.Transparency=x/30+.5;
  402. end;
  403. end);
  404. end;
  405. c.HumanoidRootPart.Velocity=c.HumanoidRootPart.CFrame.lookVector*200;
  406. end;
  407. end);
  408. mouse.KeyUp:connect(function(key)
  409. if key=='0'then
  410. Debounces.isSprinting=false;
  411. end;
  412. end);
  413. mouse.KeyDown:connect(function(key)
  414. if key=='v'then
  415. playSound(201858087,c.Torso,math.random(90,120)/100);
  416. local oldPos=c.HumanoidRootPart.CFrame.p;
  417. local mHit=mouse.Hit.p;
  418. for i=1,2 do
  419. spawn(function()
  420. local pos
  421. if i==1 then pos=oldPos else pos=mHit end
  422. local p=Instance.new('Part',workspace);
  423. p.Anchored=true;
  424. p.CanCollide=false;
  425. p.Color=a();
  426. p.FormFactor='Custom';
  427. p.CFrame=CFrame.new(pos+Vector3.new(0,500,0));
  428. p.Transparency=.4;
  429. p.Size=Vector3.new(20,1000,20);
  430. for i=1,20 do
  431. wait();
  432. p.Transparency=.4+(i/10)*.6;
  433. p.Size=Vector3.new(20-i*1.5,1000,20-i*1.5);
  434. p.CFrame=CFrame.new(pos+Vector3.new(0,500,0));
  435. end;
  436. p:Destroy();
  437. end);
  438. end;
  439. if Debounces.isMoving then
  440. c.HumanoidRootPart.CFrame=CFrame.new(mouse.Hit.p+Vector3.new(0,4,0),Vector3.new(c.HumanoidRootPart.Velocity.x,mouse.Hit.p.y+4,c.HumanoidRootPart.Velocity.z));
  441. else
  442. c.HumanoidRootPart.CFrame=CFrame.new(mouse.Hit.p+Vector3.new(0,4,0),Vector3.new(oldPos.x,mouse.Hit.p.y+4,oldPos.z));
  443. end;
  444. end;
  445. end);
  446. mouse.KeyDown:connect(function(key)
  447. if key=='r'then
  448. local pointTarget=mouse.Hit.p;
  449. for i=1,20 do
  450. wait();
  451. gasterBlast(CFrame.new(pointTarget+Vector3.new(math.sin(tick()*10)*20,5+math.abs(math.sin(tick()*5)*10),math.cos(tick()*10)*20),pointTarget));
  452. end;
  453. wait();
  454. largegasterBlast(CFrame.new(pointTarget+Vector3.new(0,35,0),pointTarget));
  455. end;
  456. end);
  457. mouse.KeyDown:connect(function(key)
  458. if key=='f'then
  459. local pointTarget=mouse.Hit.p;
  460. for i=1,20 do
  461. wait();
  462. gasterBlast(CFrame.new(c.HumanoidRootPart.CFrame.p+Vector3.new(0,50,0),pointTarget):toWorldSpace(CFrame.new(math.sin(i/2)*(20-i),math.cos(i/2)*(20-i),-i)));
  463. end;
  464. largegasterBlast(CFrame.new(c.HumanoidRootPart.CFrame.p+Vector3.new(0,50,0),pointTarget):toWorldSpace(CFrame.new(0,0,-25)));
  465. end;
  466. end);
  467. mouse.Button1Down:connect(function()
  468. Debounces.isFlash=true;
  469. end);
  470. mouse.Button1Up:connect(function()
  471. Debounces.isFlash=false;
  472. end);
  473. mouse.KeyDown:connect(function(key)
  474. if key=='k'then
  475. if music.isPlaying then music:Stop();else music:Play();end;
  476. end;
  477. end);
  478. mouse.KeyDown:connect(function(key)
  479. if key=='j'then
  480. if music2.isPlaying then music2:Stop();else music2:Play();end;
  481. end;
  482. end);
  483. mouse.KeyDown:connect(function(key)
  484. if key=='l'then
  485. if music3.isPlaying then music3:Stop();else music3:Play();end;
  486. end;
  487. end);
  488. mouse.KeyDown:connect(function(key)
  489. if key=='p'then
  490. if music4.isPlaying then music4:Stop();else music4:Play();end;
  491. end;
  492. end);
  493. mouse.KeyDown:connect(function(key)
  494. if key=='o'then
  495. if music5.isPlaying then music4:Stop();else music5:Play();end;
  496. end;
  497. end);
  498. mouse.KeyDown:connect(function(key)
  499. if key=='e'then
  500. gasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p,true);
  501. end;
  502. end);
  503. mouse.KeyDown:connect(function(key)
  504. if key=='c'then
  505. largegasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p);
  506. end;
  507. end);
  508. mouse.KeyDown:connect(function(key)
  509. if key=='q'then
  510. for i=1,5 do
  511. wait();
  512. gasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p);
  513. end;
  514. largegasterBlast(c.Torso.CFrame.p+Vector3.new(0,25,0),mouse.Hit.p);
  515. end;
  516. end);
  517. mouse.KeyDown:connect(function(key)
  518. if key=='t'then
  519. local pointTarget=mouse.Hit.p;
  520. for i=1,20 do
  521. gasterBlast(pointTarget+Vector3.new(math.sin(math.deg((360/40)*i))*(20-i),5+i,math.cos(math.deg((360/40)*i))*(20-i)),pointTarget);
  522. end;
  523. wait(.2);
  524. for i=1,10 do
  525. largegasterBlast(pointTarget+Vector3.new(math.sin(math.deg((360/20)*i))*25,20,math.cos(math.deg((360/20)*i))*25),pointTarget);
  526. end;
  527. end;
  528. end);
  529. human.StateChanged:connect(function(os,ns)
  530. if c.HumanoidRootPart.Velocity.Y<.1 and Debounces.isJumping==true and ns==Enum.HumanoidStateType.Landed then
  531. Debounces.isJumping=false;
  532. end;
  533. end);
  534. for i=1,#Joints do
  535. Joints[i].C1=CFrameZero();
  536. end;
  537. rs.RenderStepped:connect(function()
  538. Debounces.FPS=1/rs.RenderStepped:wait();
  539. if Debounces.FPS<30 then
  540. Debounces.FPS=30;
  541. end;
  542. if Debounces.isSprinting then
  543. lerpBoom();
  544. else
  545. noBoom();
  546. end;
  547. for _,v in pairs(rayModel:children())do
  548. v.Transparency=v.Transparency+.06/(Debounces.FPS/60);
  549. if v.Transparency>.99 then v:Destroy();return;end;
  550. v.CanCollide=true;
  551. local tParts=v:GetTouchingParts();
  552. v.CanCollide=false;
  553. local vCFrame=v.CFrame;
  554. v.Size=v.Size+Vector3.new(0,1,1)/(Debounces.FPS/60);
  555. v.CFrame=vCFrame;
  556. for _,x in pairs(tParts)do
  557. if x and x.Parent and x.Parent:FindFirstChild'Humanoid'and x.Parent.Humanoid:isA'Humanoid'and x.Parent~=c then
  558. x.Parent.Humanoid:TakeDamage(1,2);
  559. end;
  560. end;
  561. end;
  562. local FPSLerp=AnimStat.lerpSpeed/(Debounces.FPS/60);
  563. for i=1,#Joints do
  564. Joints[i].C0=Joints[i].C0:lerp(JointTargets[i],FPSLerp);
  565. end;
  566. end);
Add Comment
Please, Sign In to add comment