iPxter

Untitled

Aug 1st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.32 KB | None | 0 0
  1. --updated knight yo~
  2.  
  3. --sorry ppatta ):
  4.  
  5. --Edited by WDex <3, i do NOT take any credit for this script!~
  6.  
  7.  
  8. Services = setmetatable({},{__index=function(s,r) return game:service(r) end})
  9. Player = Services.Players.LocalPlayer
  10. wait()script.Parent=nil
  11. BodyParts={}
  12. abs = function(int)
  13. if int < 0 then return -int else return int end
  14. end
  15. rad = function(deg)
  16. return deg * math.pi / 180
  17. end
  18. deg = function(rad)
  19. return rad * 180 / math.pi
  20. end
  21. dist = function(p1,p2)
  22. r,e = ypcall(function()
  23. p1 = p1.Position
  24. end)
  25. if not r then p1 = p1 end
  26. r,e = ypcall(function()
  27. p2 = p2.Position
  28. end)
  29. if not r then p1 = p1 end
  30. return math.sqrt( (p2.X-p1.X)^2 + (p2.Y-p1.Y)^2 + (p2.Z-p1.Z)^2 )
  31. end
  32.  
  33. function GetChar()
  34. return Player.Character
  35. end
  36. function GetHum()
  37. for i,v in pairs(GetChar():children'') do
  38. if v.ClassName == 'Humanoid' then
  39. return v
  40. end
  41. end
  42. end
  43.  
  44. function Died()
  45. for i,v in pairs(GetChar():children'') do
  46. if v.ClassName == 'Part' then
  47. table.insert(BodyParts,{v.CFrame,v})
  48. elseif v.ClassName == 'Hat' then
  49. v.Parent=workspace
  50. table.insert(BodyParts,{v.Handle.CFrame,v.Handle,1})
  51. end
  52. end
  53.  
  54. wait(3)
  55. for i,v in pairs(BodyParts) do
  56. v[2].Anchored=true
  57. if v[2].Name == 'Torso' then pos = v[1] end
  58. end
  59.  
  60. for i,v in pairs(BodyParts) do
  61. coroutine.resume(coroutine.create(function()
  62. repeat Services.RunService.Heartbeat:wait()
  63. v[2].CFrame = v[2].CFrame:lerp(v[1],.1)
  64. until dist(v[2],v[1]) < .05
  65. v[2].CFrame=v[1]
  66. end))
  67. end
  68. end
  69.  
  70. Player.CharacterAdded:connect(function(char)
  71. char:WaitForChild('Torso')
  72. for i,v in pairs(BodyParts) do
  73. if v[3] then
  74. v[2]:Remove()
  75. end
  76. end
  77. BodyParts={}
  78. char.Torso.CFrame=pos or CFrame.new(0,12,0)
  79. GetHum().Died:connect(Died)
  80. end)
  81. GetHum().Died:connect(Died)
  82. print'rannering'
  83.  
  84. r2 = "Cyan"
  85.  
  86. --declarations
  87. PI=math.pi
  88. TAU=PI*2
  89. DEBRIS=game:service'Debris'
  90. mr,md=math.random,math.rad
  91. cfn,v3n=CFrame.new,Vector3.new
  92. _A=nil
  93. ang=function(x,y,z)local a=CFrame.Angles(x or 0,y or 0,z or 0)_A=a return a end
  94. RS=game:service'RunService'
  95. numkp=NumberSequenceKeypoint.new
  96. colkp=ColorSequenceKeypoint.new
  97. bcol=BrickColor.new
  98.  
  99. RS:UnbindFromRenderStep('Anim')
  100.  
  101. --player specific...
  102. player = game:service'Players'.LocalPlayer
  103. character = player.Character
  104. torso = character.Torso
  105. head = character.Head
  106. rarm = character['Right Arm']
  107. larm = character['Left Arm']
  108. rleg = character['Right Leg']
  109. rleg = character['Left Leg']
  110. human = character.Humanoid
  111.  
  112. --Utilities... who needs them?
  113.  
  114. function recurseHum(what)
  115. local res
  116. local p=what
  117. if what:IsA'Humanoid'then
  118. res=what
  119. else
  120. repeat
  121. p=p.Parent
  122. if p then
  123. local hum=p:FindFirstChild'Humanoid'
  124. if hum then
  125. res=hum
  126. break
  127. end
  128. end
  129. until p==nil
  130. end
  131. return res
  132. end
  133. function findHum(pos,rad,hum2)
  134. local hums={}
  135. function check(a)
  136. local res=false
  137. for i,ho in pairs(hums)do
  138. if a==ho then res=true end
  139. end
  140. return res
  141. end
  142. for i,v in pairs(Workspace:children())do
  143. if v:IsA'Model'and v~=Char and v~=(hum2 or Char) then
  144. for i,q in pairs(v:children())do
  145. if q:IsA'Humanoid' and q.Parent:FindFirstChild'Torso'and(q.Torso.Position-pos).magnitude < rad then
  146. if not check(q)then
  147. table.insert(hums,q)
  148. end
  149. end
  150. end
  151. end
  152. end
  153. return hums
  154. end
  155.  
  156. function checkY(p1,p2,range,range2)
  157. local function checko()
  158. return ( (l(p1).X>l(p2).X-range2 and l(p1).X<l(p2).X+range2) and (l(p1).Z>l(p2).Z-range2 and l(p1).Z<l(p2).Z+range2) )
  159. end
  160. if range2 then
  161. return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range) and checko()
  162. else
  163. return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range)
  164. end
  165. end
  166.  
  167. udim=function(a,b,c,d)
  168. if type(a)=='string'then
  169. x,y=tostring(a):match('([%+%d%.%-%/%*]+),([%+%d%.%-%/%*]+)')
  170. return UDim2.new(x or 0,x2 or 0,y or 0,y2 or 0)
  171. else
  172. return UDim2.new(a or 0,c or 0,b or 0,d or 0)
  173. end end
  174.  
  175. function l(a1,x,y,z,rx,ry,rz)
  176. local cf
  177. if tostring(a1):find(',') == nil then
  178. cf=a1.CFrame
  179. else cf=a1 end
  180. return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(
  181. rx or 0,ry or 0,yz or 0)
  182. end
  183. function f(a) --turns thigns in to function returning the thing... f(l)(torso,0,2,0)
  184. return function(...)
  185. local args={...}
  186. return function() return a(unpack(args)) end
  187. end
  188. end
  189.  
  190. function isIn(what,tab) --returns true if what is in tab. isIn("Troll", {"Tomato", "Troll", "Strawberry") --> true
  191. local res=false
  192. for i,v in next,tab do
  193. if v==what then
  194. res = true
  195. break
  196. end
  197. end
  198. return res
  199. end
  200.  
  201. Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things
  202. local ar = {...}
  203. local cframe0,cframe1
  204. local function checkf()local res=true
  205. for i,v in pairs(ar)do
  206. if type(v) ~= 'number' then
  207. res=false
  208. end
  209. end
  210. return res
  211. end
  212. if type(c0) == 'table' then
  213. cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles(
  214. c0[4] or 0, c0[5] or 0, c0[6] or 0)
  215. elseif type(c0) == 'userdata' then
  216. cframe0 = c0
  217. elseif type(c0) == 'number' and checkf() then
  218. 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)
  219. end
  220. if type(c1) == 'table' then
  221. cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles(
  222. c1[4] or 0, c1[5] or 0, c1[6] or 0)
  223. elseif type(c1) == 'userdata' then
  224. cframe1 = c1
  225. elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then
  226. 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)
  227. end
  228. for i,v in pairs(ar)do
  229. if type(v) == 'table' then
  230. 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)
  231. elseif type(v) == 'userdata' then
  232. cframe1 = v
  233. end
  234. end
  235.  
  236. cframe0,cframe1 = cframe1,cframe0
  237. part0.Position=part1.Position
  238. local weld = Instance.new("Weld")
  239. weld.Part0 = part0
  240. weld.Part1 = part1
  241. weld.C0 = cframe0 or CFrame.new()
  242. weld.C1 = cframe1 or CFrame.new()
  243. if weld:IsA'Motor'then weld.MaxVelocity = set_maxvel or .1 end
  244. weld.Parent = part0
  245. _2=weld
  246. return weld
  247. end
  248.  
  249. mesh_ids = {
  250. spikeball = "rbxassetid://24388358";
  251. spike = "rbxassetid://1033714";
  252. ring = "rbxassetid://3270017";
  253. coil = 'rbxassetid://16606212';
  254. diamond = 'rbxassetid://9756362';
  255. rock = 'rbxassetid://1290033';
  256. gear = 'rbxassetid://156292343';
  257. crown = 'rbxassetid://20329976';
  258. orb = 'rbxassetid://34795798';
  259. heart = 'rbxassetid://11376946';
  260. dragon = 'rbxassetid://24478215';
  261. half_sphere = 'rbxassetid://475668276'
  262. }
  263. mesh_texs = {
  264. rock = 'rbxassetid://1290030';
  265. dragon = 'rbxassetid://25665033';
  266. }
  267. mesh_scales={
  268. diamond = v3n(0.75, 0.75, 0.75);
  269. spikeball = v3n(1.05, 1.05, 1.05);
  270. spike = v3n(0.5, 1.5, 0.5);
  271. gear = v3n(1.25,1.25,18);
  272. ring = v3n(1, 1, 6);
  273. coil = v3n(0.5, 0.5, 0.3);
  274. crown = v3n(0.6, 0.6, 0.6);
  275. orb = v3n(1, 1, 1);
  276. heart = v3n(2, 2, 2);
  277. dragon = v3n(0.4, 0.5, 0.4);
  278. half_sphere= v3n(0.005, 0.01, 0.005)
  279. }
  280. mesh_offsets={
  281. crown = v3n(0,.15,0);
  282. }
  283.  
  284. function bindMesh(mesh,Size)
  285. local mesh_name
  286. local size=Size or mesh.Parent.Size
  287. for name,id in next,mesh_ids do
  288. if mesh.MeshId==id then
  289. mesh_name=name
  290. end
  291. end
  292.  
  293. if not mesh_name then return end
  294. local mesh=mesh
  295. local con
  296. con=mesh.Parent.Changed:connect(function()
  297. local siz=mesh.Parent.Size
  298. mesh.Scale=siz*mesh_scales[mesh_name]
  299. if mesh_offsets[mesh_name] then
  300. mesh.Offset=siz*mesh_offsets[mesh_name]
  301. end
  302. end)
  303. return con
  304. end
  305. Mesh = function(parent,id,sx,sy,sz)
  306. local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh')
  307. local mesh = Instance.new(name)
  308. if id == 's' then
  309. mesh.MeshType = Enum.MeshType.Sphere
  310. elseif id == 'w' then
  311. mesh.MeshType = Enum.MeshType.Wedge
  312. elseif id == 'h' then
  313. mesh.MeshType = Enum.MeshType.Head
  314. elseif string.find(id,"://") ~= nil then
  315. mesh.MeshId = id
  316. end
  317. mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1)
  318. mesh.Parent = parent
  319. _3=mesh
  320. return mesh
  321. end
  322.  
  323. Edit = function(what)
  324. return function(args)
  325. for ind,obj in next,what do
  326. for arg,val in next,args do
  327. local child,argu = arg:match"(.+)%.(.+)"
  328. if child and argu then
  329. if pcall(function()return obj[child][argu] end) then
  330. obj[child][argu]=val
  331. end
  332. else
  333. if arg=='_F'then
  334. val(ind,obj)
  335. elseif pcall(function()return obj[arg]end) then
  336. obj[arg]=val
  337. end
  338. end
  339. end
  340. end
  341. end
  342. end
  343. New = function(what) --Synthetic caffeine for Instance.new
  344. local obj
  345. if type(what) ~= 'string' then
  346. obj=what:Clone()
  347. else
  348. obj=Instance.new(what)
  349. end
  350. if what=='Weld' then obj.Name='mujoint'end
  351. return function(bar)
  352. for arg,val in pairs(bar) do
  353. if arg == "_P" then
  354. obj.Parent = val
  355. elseif arg=="_PP" then
  356. obj.Part0=val[1]
  357. obj.Part1=val[2]
  358. elseif arg=='_F'then
  359. val(obj)
  360. else
  361. if pcall(function()return obj[arg] end) then
  362. obj[arg]=val
  363. end
  364. end
  365. end _4=obj
  366. return obj
  367. end
  368. end
  369.  
  370. set_parent,set_material=nil,nil
  371. set_maxvel,set_anchor=nil,nil
  372. set_collide=false
  373.  
  374. pcall(function() character['Knight']:Destroy() end) --removes old model.
  375. Main = New"Model"{_P=character;Name = 'Knight'}
  376.  
  377. _1,_2,_3,_4,_5,_6,_7,_8 = nil,nil,nil,nil,nil,nil,nil
  378. Part = function(x,y,z,col,tr)
  379. local p = New"Part"{
  380. _P=set_parent or ears or Main;
  381. BrickColor = BrickColor.new(col or set_color or "Magenta");
  382. CanCollide = set_collide;
  383. Transparency = tr or 0;
  384. Size = Vector3.new(x or 0,y or 0,z or 0);
  385. Material = set_material or 'SmoothPlastic';
  386. Anchored = (set_anchor~=nil and set_anchor or false)
  387. }
  388. for _,sur in next,Enum.NormalId:GetEnumItems() do
  389. p[sur.Name..'Surface'] = 10
  390. end
  391. _1 = p
  392. return p
  393. end
  394.  
  395. function platefy(part)
  396. local x,z=part.Size.x,part.Size.z
  397. local y=part.Size.y
  398. local list={}
  399. --Cylinders...
  400. local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1)
  401. Weld(p2,p,0,0,-z/2,PI/2,0,PI/2)
  402.  
  403. local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1)
  404. Weld(p2,p,0,0,z/2,PI/2,0,PI/2)
  405.  
  406. local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1)
  407. Weld(p2,p,x/2,0,0,PI/2)
  408.  
  409. local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1)
  410. Weld(p2,p,-x/2,0,0,PI/2)
  411.  
  412. --Balls...
  413. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  414. Weld(p2,p,-x/2,0,-z/2)
  415.  
  416. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  417. Weld(p2,p,-x/2,0,z/2)
  418.  
  419. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  420. Weld(p2,p,x/2,0,-z/2)
  421.  
  422. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  423. Weld(p2,p,x/2,0,z/2)
  424.  
  425. part.Changed:connect(function(prop)
  426. Edit(list){Material=part.Material;Color=part.Color}
  427. end)
  428. end
  429.  
  430.  
  431. function findAllParts(pos,radius)
  432. local min,max = math.min,math.max
  433. local list={}
  434. local pos1,pos2=l(cfn(pos),-radius*3,-radius*3,-radius*3).p,l(cfn(pos),radius*3,radius*3,radius*3).p
  435. local reg=Region3.new(v3n(min(pos1.x,pos2.x),min(pos1.y,pos2.y),min(pos1.z,pos2.z)),
  436. v3n(max(pos1.x,pos2.x),max(pos1.y,pos2.y),max(pos1.z,pos2.z)))
  437. for i,v in pairs(Workspace:FindPartsInRegion3WithIgnoreList(reg,{character})) do
  438. if (v.Position-pos).magnitude<radius and v.Name~='Base' then
  439. table.insert(list,v)
  440. end
  441. end
  442. return list
  443. end
  444.  
  445. function forcePose(hum,lim)
  446. local t=hum.Torso
  447. local limb_names={'r_leg','l_leg','r_arm','l_arm'}
  448. if not t then return end
  449. --Right hip
  450. local limbs={huma=hum;torso=t;
  451. revert=function(self)
  452. for i,v in pairs(self)do
  453. if isIn(i,limb_names) then
  454. v.w:Destroy()
  455. end
  456. end
  457. self.huma.HipHeight=0
  458. self.huma:Move(v3n(0,0,0))
  459. if self['bg'] then
  460. self['bg']:Destroy()
  461. end
  462. end;
  463. }
  464. if t.Parent:FindFirstChild'Right Leg' then
  465. local invp=Part(1,1,1,'',1)_1.Anchored=false _1.Name='Hourai'_1.Parent=Main
  466. New"Weld"{_P=invp;_PP={invp,t};C1=cfn(.5,-1.5,0);} --Welded to torso
  467. local ww=New"Weld"{_P=invp;_PP={t.Parent['Right Leg'],invp};
  468. C0=cfn(0,.5,0);} --Right leg welded to invisible part
  469. -- ww.C0=cfn(-.05,0,0)*ang(0,0,md'-90')
  470. limbs.r_leg={w=ww;n_c0=ww.C0;n_c1=ww.C1}
  471. end
  472. --Left hip
  473. if t.Parent:FindFirstChild'Left Leg' then
  474. local invp=Part(1,1,1,'',1)_1.Anchored=false _1.Name='Hourai'_1.Parent=Main
  475. New"Weld"{_P=invp;_PP={invp,t}; C1=cfn(-.5,-1.5,0);}--Welded to torso
  476. local ww=New"Weld"{_P=invp;_PP={t.Parent['Left Leg'],invp};
  477. C0=cfn(0,.5,0);} --Right leg welded to invisible part
  478. -- ww.C0=cfn(.5,0,0)*ang(0,0,md'45')
  479. limbs.l_leg={w=ww;n_c0=ww.C0;n_c1=ww.C1}
  480. end
  481. --Right shoulder
  482. if t.Parent:FindFirstChild'Right Arm' then
  483. local invp=Part(1,1,1,'',1)_1.Anchored=false _1.Name='Hourai'_1.Parent=Main
  484. New"Weld"{_P=invp;_PP={invp,t};C1=cfn(1.5,.5,0)}
  485. local ww=New"Weld"{_P=invp;_PP={t.Parent['Right Arm'],invp};C0=cfn(0,.5,0)}
  486. -- ww.C0=cfn(-.15,0,-.5)*ang(md'45',0,md'-35')
  487. limbs.r_arm={w=ww;n_c0=ww.C0;n_c1=ww.C1}
  488. end
  489. --Left shoulder
  490. if t.Parent:FindFirstChild'Left Arm' then
  491. local invp=Part(1,1,1,'',1)_1.Anchored=false _1.Name='Hourai'_1.Parent=Main
  492. New"Weld"{_P=invp;_PP={invp,t};C1=cfn(-1.5,.5,0)}
  493. local ww=New"Weld"{_P=invp;_PP={t.Parent['Left Arm'],invp};C0=cfn(0,.5,0)}
  494. -- ww.C0=cfn(.15,0,-.5)*ang(md'45',0,md'35')
  495. limbs.l_arm={w=ww;n_c0=ww.C0;n_c1=ww.C1}
  496. end
  497. if lim then
  498. for i,v2 in pairs(limbs)do
  499. if not isIn(i,lim) and type(v2)=='table' then
  500. -- print(i)
  501. v2.w.Part1:Destroy()
  502. limbs[i]=nil
  503. end
  504. end end
  505. return function(tab)
  506. for i,v in pairs(tab)do
  507. if i=='hipheight'then limbs['huma'].HipHeight=v end
  508. if limbs[i] and i ~='hipheight' then
  509. limbs[i].w.C0=limbs[i].n_c0*(v:inverse())
  510. end
  511. end
  512. return limbs
  513. end
  514.  
  515. end
  516.  
  517. --Equipment...
  518.  
  519.  
  520. --Necklace...
  521. cp=Part(.5,.1,.5,'Black')Mesh(_1,'cyl')
  522. Weld(cp,torso,0,0,-.55,-PI/2)
  523.  
  524. e_parts={}
  525. for i=0,TAU,TAU/10 do
  526. Part(.1,.1,.1,'Black')Mesh(_1,'bl',.25,.5,.5)
  527. New"Weld"{_P=_1;_PP={_1,cp};C1=cfn(0,.11,0)*ang(0,i);C0=cfn(.15,0,0)}
  528. table.insert(e_parts,_1)
  529. end
  530.  
  531. p=Part(1,.1,.1)Mesh(_1,'bl',1,.5,.5)
  532. New"Weld"{_P=_1;_PP={p;cp};C1=ang(0,md'90'-md'35');C0=cfn(_1.Size.x/2+.25,0,0)}
  533.  
  534. p2=Part(1,.1,.1)Mesh(_1,'bl',1,.5,.5)
  535. New"Weld"{_P=_1;_PP={_1;p};C1=cfn(-.5,0,0)*ang(md'-5',0,PI/2);C0=cfn(.5,0,0)}
  536.  
  537.  
  538. p=Part(1,.1,.1)Mesh(_1,'bl',1,.5,.5)
  539. New"Weld"{_P=_1;_PP={p;cp};C1=ang(0,md'90'+md'35');C0=cfn(_1.Size.x/2+.25,0,0)}
  540.  
  541. p2=Part(1,.1,.1)Mesh(_1,'bl',1,.5,.5)
  542. New"Weld"{_P=_1;_PP={_1;p};C1=cfn(-.5,0,0)*ang(md'5',0,PI/2);C0=cfn(.5,0,0)}
  543.  
  544. pp=Part(.25,.1,.1)Weld(pp,torso,0,.75,.515)Mesh(_1,'bl',1,.5,.5)
  545.  
  546. pp2=Part(.7,.1,.1)New(_3){_P=pp2}
  547. New"Weld"{_P=pp2;_PP={_1,pp};C1=cfn(.125-.2,0,0)*ang(md'-5',0,md'-30');C0=cfn(_1.Size.x/2,0,0)}
  548.  
  549. pp2=Part(.7,.1,.1)New(_3){_P=pp2}
  550. New"Weld"{_P=pp2;_PP={_1,pp};C1=cfn(-.125+.2,0,0)*ang(md'-5',0,md'30');C0=cfn(-_1.Size.x/2,0,0)}
  551.  
  552. eye={parts=e_parts;center=cp;op=function(self,col)Edit(self.parts){Material='Neon';BrickColor=bcol(col or 'Bright red')}end;
  553. clo=function(self)Edit(self.parts){BrickColor=bcol'Black';Material='SmoothPlastic'}end}
  554. --/Necklace
  555.  
  556. --Bag
  557.  
  558.  
  559. bag=Part(1,1,1,'Brown')Mesh(bag,'rbxassetid://25921854',1.5,1.5,1.5)
  560. _3.TextureId='rbxassetid://3525940'
  561. Weld(bag,torso,-1.15,-1.15,-.3,md'-25',0,md'-25')
  562. --/Bag
  563. --/Equipment
  564.  
  565. --Animation stuff
  566. tokill={}
  567. RS:BindToRenderStep('Anim',2000,function() --Mainloop
  568. for i,v in pairs(Animations)do --execute animations
  569. v:Exec()
  570. end
  571. for i,v in pairs(tokill)do
  572. if v.Count>0 then
  573. pcall(function()v.pl.Character:BreakJoints()v.Count=v.Count-1 end)
  574. else
  575. table.remove(tokill,i)end
  576. end
  577. end)
  578.  
  579. do
  580. local c0 = {
  581. RightArm = cfn(1,0.5,0),
  582. LeftArm = cfn(-1,0.5,0),
  583. RightLeg = cfn(1,-1,0),
  584. LeftLeg = cfn(-1,-1,0),
  585. RootJoint = cfn(0,0,0),
  586. Neck = cfn(0,1,0)
  587. }
  588. local c1 = {
  589. RightArm = cfn(-0.5,0.5,0),
  590. LeftArm = cfn(0.5,0.5,0),
  591. RightLeg = cfn(0.5,1,0),
  592. LeftLeg = cfn(-0.5,1,0),
  593. RootJoint = cfn(0,0,0),
  594. Neck = cfn(0,-0.5,0)
  595. }
  596.  
  597. Animations={}
  598. Joints={}
  599.  
  600. Joint={
  601. new=function(name,weld,c0,c1)
  602. local joint={
  603. w=weld;
  604. part1=weld.Part1;
  605. n_c0=(c0 or weld.C0);
  606. n_c1=(c1 or weld.C1);
  607. name=name;
  608. previous=weld.C0;
  609. _can_kf=true;
  610. }
  611. joint.keys={};
  612. function joint:revertToOrig()
  613. self.w.C0=self.n_c0
  614. self.w.C1=self.n_c1
  615. end
  616. function joint:NewAnim(anim)
  617. self.keys[anim]={}
  618. end
  619. setmetatable(joint,{
  620. __mul=function(ta,val)
  621. return ta.n_c0*val
  622. end;
  623. })
  624.  
  625. getfenv()[name]=joint
  626. Joints[name]=joint
  627. return joint
  628. end
  629. }
  630. weld_container=New"Folder"{_P=Main}
  631.  
  632. Joint.new('rw',New"Weld"{_P = weld_container;_PP={nil;rarm};
  633. C0=c0.RightArm; C1=c1.RightArm})
  634.  
  635. function eq()
  636. Joints.rw.w.Part0=torso
  637. end
  638. function uneq()
  639. Joints.rw.w.Part0=nil
  640. end
  641.  
  642. Styles={
  643. Linear = function(alpha)
  644. return alpha
  645. end;
  646. easeInSine = function(alpha)
  647. local alpha = (1-math.cos(alpha*(math.pi/2)))
  648. return alpha
  649. end;
  650. easeOutSine = function(alpha)
  651. alpha = math.sin(alpha*(math.pi/2))
  652. return alpha
  653. end;
  654. easeInOutSine = function(alpha)
  655. alpha = alpha*2
  656. if alpha < 1 then
  657. return 0.5*Styles["easeInSine"](alpha)
  658. else
  659. return 0.5*Styles["easeOutSine"](alpha-1)+.5
  660. end
  661. end;
  662.  
  663. easeInQuadratic = function(alpha)
  664. alpha = alpha^2
  665. return alpha
  666. end;
  667. easeOutQuadratic = function(alpha)
  668. _alpha = 1-alpha
  669. alpha = 1-_alpha*_alpha
  670. return alpha
  671. end;
  672. easeInOutQuadratic = function(alpha)
  673. alpha = alpha*2
  674. if alpha < 1 then
  675. return 0.5*Styles["easeInQuadratic"](alpha)
  676. else
  677. return 0.5*Styles["easeOutQuadratic"](alpha-1)+0.5
  678. end
  679. end;
  680.  
  681. easeInCubic = function(alpha)
  682. alpha = alpha^3
  683. return alpha
  684. end;
  685. easeOutCubic = function(alpha)
  686. alpha = 1-alpha
  687. return 1-alpha^3
  688. end;
  689. easeInOutCubic = function(alpha)
  690. alpha = alpha*2
  691. if alpha < 1 then
  692. return 0.5*Styles["easeInCubic"](alpha)
  693. else
  694. return 0.5*Styles["easeOutCubic"](alpha-1)+.5
  695. end
  696. end;
  697. }
  698. function Interpolate(Type,p0,p1)
  699. local Data = {Style = Styles[Type],PointA = p0,PointB = p1}
  700. return function(Perc)
  701. local Perc = Data.Style(Perc)
  702. return Data.PointA:lerp(Data.PointB,Perc)
  703. end
  704. end
  705. -- Interpolate('easeInSine',CFrame.new(0,0,0),CFrame.new(10,10,10))(.5)
  706. -- error('script end')
  707. function NewLimbAnim(anim)
  708. for _,v in pairs(Joints)do
  709. v:NewAnim(anim)
  710. end
  711. end
  712.  
  713. function reset()
  714. local cc=newAnim(.5,false,_,true){
  715. [.5]=init;
  716. }cc:Play()cc:Wait()cc:Stop()
  717. for i,v in pairs(Joints)do v:revertToOrig() end
  718. -- for i,v in pairs(Animations)do v:Stop()end
  719. end
  720.  
  721. words={
  722. love={"I love you", "Gimme a hug", "You're gonna love me", "Love is \nall we have"}
  723. }
  724.  
  725.  
  726. function wordParticles(part,category,color,size,speed)
  727. local list=words[category]
  728. local bbg=New"BillboardGui"{_P=part;Adornee=part;Size=udim'4,4';AlwaysOnTop=true;}
  729. while wait(speed/4)do
  730. local tl=New"TextLabel"{_P=bbg;Size=udim(0,0);
  731. Text=list[#list];Position=udim(mr(),mr());FontSize=12;
  732. TextColor3=bcol(color).Color;TextTransparency=.6}
  733.  
  734. tl:TweenSizeAndPosition(udim'0,0',udim(math.random(),math.random()),'Out','Quad',speed,false,function()
  735. tl:Destroy()end)
  736. end
  737. end
  738.  
  739. function newAnim(lenght,loop,style,strange) --Epic wrapper for epic skids
  740. local t_len=0
  741. for i,v in pairs(Animations)do t_len=t_len+1 end
  742. local name='anim_'..tostring(t_len)
  743. -- NewLimbAnim(name)
  744. for _,v in pairs(Joints)do
  745. v:NewAnim(name)
  746. end
  747. local Anim={
  748. Span=lenght;Loop=false;
  749. Location=name;
  750. Count=0;stay=true;
  751. Keyframes={}; --Aliases
  752. Playing=false;Loop=false;
  753. reset_on_loop=true;
  754. Name=name;
  755. }
  756. for i,v in pairs(Joints)do
  757. Anim.Keyframes[i]=v
  758. end
  759. function Anim:Play()
  760. self.Playing=true
  761. self.Count=0
  762. end
  763. function Anim:Remove()
  764. Animations[self.Name]=nil
  765. end
  766. function Anim:Stop()
  767. self.Playing=false
  768. self.Count=0
  769. -- RevertAll()
  770. end
  771. local Time=tick()
  772. function Anim:Add(Time,limb,c0,c1)
  773. if Time>self.Span then error"one simply does not travel to future..."end
  774. local Tab={TimeOfAction=Time,Joint=limb,frame={C0=c0 or self.Keyframes[limb].n_c0,C1=c1 or self.Keyframes[limb].n_c1}}
  775. table.insert(self.Keyframes[limb].keys[self.Location],Tab)
  776. table.sort(self.Keyframes[limb].keys[self.Location],function(a,b) return a.TimeOfAction < b.TimeOfAction end)
  777. end
  778. function Anim:Exec(smooth)
  779. local DT=tick()-Time
  780. Time=tick()
  781. local First,Current,Next
  782. if self.Playing then --Check if anim can play
  783. self.Count=self.Count+DT --it goes up
  784. if self.Loop then --Reset when at end if loop
  785. if self.Count >= self.Span then
  786. self.Count=0
  787. if self.onCycle then
  788. self.onCycle(self)
  789. end
  790. end
  791. elseif not self.Loop then
  792. if self.Count >= self.Span then
  793. self.Count=self.Span
  794.  
  795. if self.onFinish then
  796. self.onFinish(self)
  797. end
  798. end
  799. end
  800. for i,v in pairs(self.Keyframes) do
  801. if v._can_kf then
  802. for i2,v2 in pairs(v.keys[self.Location]) do --cframes are stored in joints. self.Location is the name of animation
  803. First,Current,Next = v.keys[self.Location][1],v2,v.keys[self.Location][i2+1]
  804. if Next ~= nil and self.Count >= Current.TimeOfAction and self.Count <= Next.TimeOfAction then
  805. local Dis = (Next.TimeOfAction-Current.TimeOfAction)
  806. local Perc = (self.Count-Current.TimeOfAction)/Dis
  807. v.w.C0 = Interpolate(style or 'Linear',Current.frame.C0,Next.frame.C0)(Perc)
  808. v.w.C1 = Interpolate(style or 'Linear',Current.frame.C1,Next.frame.C1)(Perc)
  809. v.previous = v.w.C0
  810. end
  811. end end
  812. end
  813. end
  814. end
  815. Animations[name]=Anim
  816. local a=Anim
  817.  
  818. if loop~=nil then
  819. a.Loop=loop
  820. end
  821.  
  822. return function(kfs)
  823. if not kfs[0] then
  824. local t={}
  825. for j,v in pairs(Joints) do
  826. t[j]=v.previous*(v.n_c0:inverse())
  827. end
  828. kfs[0]=t
  829. end
  830. a.kfl=kfs
  831.  
  832. function a:last()
  833. local n,o=-1,nil
  834. for i,v in pairs(self.kfl)do
  835. if i>n then
  836. n=i o=v
  837. if type(o)=='number' then
  838. o=self.kfl[o]
  839. end
  840. end
  841. end
  842. return o
  843. end
  844. function Anim:Wait(num)
  845. repeat wait()until self.Count>=(num or self.Span)
  846. end
  847. if lenght==0 then
  848. for i,v in pairs(kfs) do
  849. a.Span=i
  850. end
  851.  
  852. end
  853. for tim,kf in pairs(kfs) do
  854.  
  855. local kk=kf
  856. if type(kf) =='number'then
  857. kk=kfs[kf]
  858. end
  859.  
  860. for j,v in pairs(kk) do
  861. if not strange then
  862. a:Add(tim,j, (v == 0 and Joints[j].n_c0 or (Joints[j].n_c0 * v) ))
  863. else
  864. a:Add(tim,j, (v == 0 and Joints[j].n_c0 or v ))
  865. end
  866. end
  867. end
  868. return Anim
  869. end
  870. end
  871.  
  872. end --Animation stuf... END
  873.  
  874. lazor_snd=New"Sound"{_P=Main;SoundId='rbxassetid://147627083';Pitch=.75;Volume=.8}
  875.  
  876. found=false
  877. ra=25
  878.  
  879. function rainbow()
  880. holding=true
  881. local kfs={}
  882. local kfs2={}
  883. local b=true
  884. for i=0,1,.1 do
  885. b=not b
  886. kfs[#kfs+1]=numkp(i,(b and i*5 or (i*5)/2))
  887. end
  888. while holding do
  889. eye:op"Lime green"
  890. for o=1,3 do
  891. angle=ang(md(mr(-ra,ra)),md(mr(-ra,ra)))
  892. stp=l(eye.center)*ang(PI/2)
  893. enp=l(stp*angle,0,0,-20)
  894. local obj,pos=Workspace:FindPartOnRay(Ray.new(stp.p,enp.lookVector*20),character)
  895. if (obj and pos) then
  896. if obj.Parent.Name~='M_CAR' then
  897. local siz_x,siz_y,siz_z=obj.Size.x,obj.Size.y,obj.Size.z
  898. if (siz_x+siz_y+siz_z)/3 < 50 then
  899. local mag=(stp.p-pos).magnitude
  900. local r=Part(1,mag,1,'',.5)_1.Anchored=true _1.Color=eye.parts[1].Color
  901. _1.Material='Neon'
  902. _1.CFrame=(cfn(stp.p,pos)*cfn(0,0,-mag/2))*ang(PI/2)
  903.  
  904. local pp=Part(.1,.1,.1,'',1)--_1.Anchored=true
  905. _1.CFrame=cfn(l(r,0,-mag/2).p)
  906.  
  907. CJ=cfn(pp.Position)
  908. New"Weld"{_P=pp;_PP={pp,obj};C0=pp.CFrame:inverse()*CJ;
  909. C1=obj.CFrame:inverse()*CJ}
  910.  
  911. New"ParticleEmitter"{_P=pp;
  912. Size=NumberSequence.new(kfs);
  913. Transparency=NumberSequence.new{numkp(0,0);numkp(1,1)};
  914. Color=ColorSequence.new(r.Color);
  915. VelocitySpread=180;
  916. LightEmission=1;
  917. Lifetime=NumberRange.new(5,5);
  918. Speed=NumberRange.new(1,4);
  919. Texture="http://www.roblox.com/asset/?id=62395035";
  920. }
  921.  
  922.  
  923. DEBRIS:AddItem(pp,1)
  924.  
  925. local hum=recurseHum(obj)
  926. if hum then hum:TakeDamage(10)
  927.  
  928. end
  929.  
  930. DEBRIS:AddItem(r,.1)
  931. found=true
  932. end
  933. end
  934. end
  935. end
  936. wait()
  937. if found then found=false
  938. if not lazor_snd.IsPlaying then lazor_snd:Play()
  939. elseif not found and not lazor_snd.IsPlaying then lazor_snd:Stop()
  940. end
  941. end
  942. end
  943. lazor_snd:Stop()
  944. eye:clo()
  945. end
  946.  
  947. function laser(st,en,r)
  948. total_mag=(st-en).magnitude
  949. prev=cfn(st)
  950. local mo=New"Model"{_P=Main}
  951. set_parent=mo
  952. local pm={-1,1}
  953. for i=0,1,.1 do
  954. local pos=cfn(st):lerp(cfn(en),i)
  955. local pos2=pos*cfn(pm[mr(#pm)]*r,0,pm[mr(#pm)]*r)
  956. local mag=(prev.p-pos2.p).magnitude
  957. local laz=Part(.1,mag,.1,'Cyan',.5)_1.Anchored=true _1.Material='Neon'
  958. Mesh(_1,'bl',.5,1,.5)
  959. _1.CFrame=(cfn(prev.p,pos2.p)*cfn(0,0,-mag/2))*ang(PI/2)
  960. if i>.9 then
  961. _1.CFrame=(cfn(prev.p,pos2.p)*cfn(0,0,-mag/2))*ang(PI/2)
  962. end
  963. prev=pos2
  964. end
  965. set_parent=nil
  966. DEBRIS:AddItem(mo,.025)
  967. end
  968.  
  969. red_snd=New"Sound"{_P=Main;SoundId='rbxassetid://163826750'}
  970. function red()
  971. eye:op'Really red'
  972. local bl=Part(1,1,1,'Black',.75)_1.Material='Neon'
  973. local bl2=Part(1,1,1,'Bright red',.5)_1.Material='Slate'
  974. Weld(bl,eye.center)
  975. Weld(bl2,eye.center)
  976. local msh=Mesh(bl,'s')
  977. local ra=20
  978. local msh2=Mesh(bl2,'s')
  979. red_snd:Play()
  980. for i=0,1,.1 do
  981. msh.Scale=v3n(ra,ra,ra)*i
  982. msh2.Scale=v3n(ra-1,ra-1,ra-1)*i
  983. wait()
  984. end
  985.  
  986. local ign=nil
  987.  
  988. local humlist={}
  989. for o=0,3 do
  990. for i,v in pairs(findHum(torso.Position,ra))do
  991. if v.Parent~=character then
  992. for _,v2 in pairs(v.Parent:children())do
  993. if v2:IsA'Model'then v2:Destroy()
  994. elseif v2:IsA'Part' and v2.Name~='HumanoidRootPart'then
  995. v2.Transparency=0
  996. elseif v2:IsA'BaseScript' and not isIn(v2.Name,{'Animate','Health','Sound'})then
  997. v2.Disabled=true
  998. end
  999. end
  1000. -- v.Health=v.Health-5
  1001. v.Torso.Velocity=cfn(torso.Position,v.Torso.Position).lookVector*100
  1002. Spawn(function()v.PlatformStand=true wait()v.PlatformStand=false end)
  1003. v:UnequipTools()
  1004. local pl=game.Players:GetPlayerFromCharacter(v.Parent)
  1005. ign=v.Parent
  1006. -- pacify(v.Parent)
  1007. if pl then
  1008. -- pl:ClearCharacterAppearance()
  1009. for i,v in pairs(pl.Backpack:children()) do
  1010. if v:IsA'BackpackItem' then
  1011. v:Destroy()
  1012. end
  1013. end
  1014. end end
  1015.  
  1016. end
  1017. end
  1018. for i=1,0,-.1 do
  1019. msh.Scale=v3n(ra,ra,ra)*i
  1020. msh2.Scale=v3n(ra-1,ra-1,ra-1)*i
  1021. wait()
  1022. end
  1023. bl:Destroy()bl2:Destroy()
  1024. eye:clo()
  1025. end
  1026.  
  1027. blue_snd=New"Sound"{_P=Main;SoundId='rbxassetid://314580397'}
  1028.  
  1029. function blue()
  1030. eye:op'Really black'
  1031. local poses={}
  1032.  
  1033. local ring=Part(1,1,1,'Really black')_1.Anchored=true _1.CFrame=l(torso,0,-2,0,PI/2)
  1034. local msh=Mesh(_1,mesh_ids.ring)
  1035. Spawn(function()
  1036. for i=0,1,.05 do
  1037. msh.Scale=v3n(i*40,i*40,1)
  1038. ring.Transparency=i
  1039. wait()
  1040. end
  1041. ring:Destroy()
  1042. end)
  1043. blue_snd:Play()
  1044. for i,v in pairs(findHum(l(torso).p,30)) do
  1045. if v.Parent~=character then
  1046. local pose=forcePose(v){
  1047. r_arm=cfn(-.4,0,-.5)*ang(md'45',0,md'-45');
  1048. l_arm=cfn(.4,0,-.5)*ang(md'45',0,md'45');
  1049. r_leg=ang(md'-80',0,md'25');
  1050. l_leg=ang(md'-80',0,md'-25');
  1051. hipheight=-.5;
  1052. }
  1053. pose.bg=New"BodyGyro"{_P=v.Torso;maxTorque=v3n(1,1,1)*9e+009;P=900000;cframe=cfn(l(v.Torso).p,l(torso).p)}
  1054. table.insert(poses,pose)
  1055. end end
  1056. local ti=tick()
  1057. if #poses>0 then
  1058. repeat
  1059. for i,v in pairs(poses)do
  1060. if v.bg then
  1061. v.bg.cframe=cfn(v.torso.Position,torso.Position)
  1062. local vec=(torso.Position-v.torso.Position)
  1063. if vec.magnitude>5 then
  1064. v.huma:MoveTo((cfn(torso.Position,v.torso.Position)*cfn(0,0,-5)).p)
  1065. else
  1066. v.huma:Move(v3n(0,0,0))
  1067. end
  1068. end
  1069. end wait()
  1070. until (tick()-ti)>3
  1071. for i,v in pairs(poses)do v:revert() end
  1072. else
  1073. wait'.1'
  1074. end
  1075. eye:clo()
  1076. end
  1077.  
  1078. function green()
  1079. local r=4
  1080. eye:op'Lime green'
  1081. holding=true
  1082. orig_ws=character.Humanoid.WalkSpeed
  1083. character.Humanoid.WalkSpeed=80
  1084. while holding do
  1085. for i=1,3 do
  1086. local p=Part(.1,.1,.1,'Lime green',.5)_1.Material='Neon'
  1087. _1.Anchored=true
  1088. _1.CFrame=l(torso,mr(-r,r),mr(-2,r),mr(-r,r),mr(-4,4),mr(-4,4),mr(-4,4))
  1089. DEBRIS:AddItem(_1,.1)
  1090. end
  1091. wait()
  1092. end
  1093. character.Humanoid.WalkSpeed=orig_ws
  1094. eye:clo()
  1095. end
  1096.  
  1097. function black()
  1098. for i,v in pairs(findHum(l(torso).p,10))do
  1099. if v.Parent~=character then
  1100. local pl=game.Players:GetPlayerFromCharacter(v.Parent)
  1101. if pl then
  1102. tokill[#tokill+1]={pl=pl;Count=4}
  1103. end
  1104. end
  1105. end
  1106. end
  1107.  
  1108. yel_snd=New"Sound"{_P=Main;SoundId='rbxassetid://138111999'}
  1109.  
  1110. function yellow()
  1111. eye:op'New Yeller'
  1112. yel_snd:Play()
  1113. local mod=New"Model"{_P=Workspace;Name='M_CAR'}
  1114. set_parent=mod
  1115. set_collide=true
  1116. cassis=Part(4,.75,6)_1.TopSurface='Weld'
  1117. _1.CFrame=l(torso,0,5,-7)
  1118.  
  1119. vs=New"VehicleSeat"{_P=mod;Size=v3n(2,1,2);CFrame=l(cassis,0,.75/2+.5,0,0,PI);BottomSurface='Weld';
  1120. BrickColor=bcol'Black'}vs.CanCollide=false
  1121. vs.MaxSpeed=7222
  1122.  
  1123. wheel=Part(5,5,5)_1.Shape=0
  1124. _1.RightSurface='Hinge'
  1125. _1.CFrame=l(cassis,-4.5,0,-3)
  1126.  
  1127. wheel2=Part(5,5,5)_1.Shape=0
  1128. _1.RightSurface='Hinge'
  1129. _1.CFrame=l(cassis,4.5,-.25,-3,0,PI)
  1130.  
  1131.  
  1132. wheel3=Part(5,5,5)_1.Shape=0
  1133. _1.RightSurface='Hinge'
  1134. _1.CFrame=l(cassis,-4.5,0,3)
  1135.  
  1136.  
  1137. wheel4=Part(5,5,5)_1.Shape=0
  1138. _1.RightSurface='Hinge'
  1139. _1.CFrame=l(cassis,4.5,-.25,3,0,PI)
  1140.  
  1141. set_collide=false
  1142. for i,v in pairs{wheel,wheel2,wheel3,wheel4}do
  1143. v.Transparency=.9
  1144. v.Material='Neon'
  1145. Part(4,4,4,'New Yeller')
  1146. Mesh(_1,'s')
  1147. Weld(_1,v)
  1148. end
  1149.  
  1150. --Lights...
  1151. kehys=Part(4,2,.1)Weld(_1,cassis,0,.75/2+1,3-.05)
  1152. Part(1,1,.1,'New Yeller')Weld(_1,kehys,-1,0,.1)_1.Material='Neon'
  1153. Part(1,1,.1,'New Yeller')Weld(_1,kehys,1,0,.1)_1.Material='Neon'
  1154.  
  1155.  
  1156. pil=Part(2,6,.1)Weld(_1,cassis,0,.75/2+_1.Size.y/2,-2)
  1157. roof=Part(5,4,.1)New"Weld"{_P=_1;_PP={_1,pil};C1=cfn(0,pil.Size.y/2,0)*ang(-PI/2);C0=cfn(0,_1.Size.y/2,0)}
  1158. local p=Part(5,4-2,.5)Weld(_1,roof,0,0,roof.Size.z/2+.25)
  1159. roof=p
  1160. local p2=Part(5,p.Size.z,1)Mesh(_1,'w')
  1161. Weld(_1,p,0,p.Size.y/2+p2.Size.z/2,0,PI/2)
  1162.  
  1163. local p2=Part(5,p.Size.z,1)Mesh(_1,'w')
  1164. Weld(_1,p,0,-(p.Size.y/2+p2.Size.z/2),0,PI/2,PI)
  1165. local seat=New"Seat"{_P=mod;Size=v3n(1,.2,1);BrickColor=bcol'Black';CanCollide=false}
  1166.  
  1167. Weld(seat,roof,0,0,seat.Size.y/2+roof.Size.z/2,-PI/2,0,PI)
  1168.  
  1169. Part(.1,6,1.5)Mesh(_1,'w')
  1170. Weld(_1,pil,-1-_1.Size.z/2,0,0,PI,PI/2)
  1171.  
  1172. Part(.1,6,_1.Size.z)Mesh(_1,'w')
  1173. Weld(_1,pil,1+_1.Size.z/2,0,0,PI,-PI/2)
  1174.  
  1175. p=Part(4,4,.1,'New Yeller',.75)
  1176. New"Weld"{_P=_1;_PP={_1,kehys};C1=cfn(0,1,0)*ang(-md(15));C0=cfn(0,-2,0)}
  1177.  
  1178. -- Part(2,2,2)Weld(_1,cassis,0,3)
  1179.  
  1180. set_collide=true
  1181.  
  1182. vs.MaxSpeed=80
  1183. mod:MakeJoints()
  1184. set_collide=true
  1185.  
  1186. set_parent=nil
  1187. set_collide=false
  1188.  
  1189. wait(.24)
  1190. eye:clo()
  1191. repeat wait()until yel_snd.TimePosition>=.37
  1192. eye:op'New Yeller'
  1193. repeat wait() until yel_snd.IsPlaying==false
  1194. eye:clo()
  1195. end
  1196.  
  1197. poses={
  1198. pickup={rw=cfn(0,.75,-.5)*ang(md'30',0,md'-60')*cfn(0,-1,0)};
  1199. }
  1200.  
  1201. function reset()
  1202. for _,v in pairs(Joints)do
  1203. v.beg=v.w.C0
  1204. end
  1205. for i=0,1,.1 do
  1206. for _,v in pairs(Joints)do
  1207. v.w.C0=v.beg:lerp(v.n_c0,i)
  1208. end
  1209. wait()
  1210. end
  1211. end
  1212.  
  1213. init={rw=0}
  1214. heart_snd=New"Sound"{_P=Main;SoundId='rbxassetid://130785805'}
  1215. heart_snd2=New"Sound"{_P=Main;SoundId='http://www.roblox.com/Asset/?id=11945266';Pitch=.5}
  1216. heart_snd3=New"Sound"{_P=Main;SoundId='rbxassetid://138014729';Name='Hoo'}
  1217. function Magenta()
  1218. eq()
  1219. pickup.Count=0
  1220. pickup:Play()
  1221. repeat wait() until pickup.Count>=.5
  1222. repeat
  1223. local bullet=Part(1,1,1,'Magenta')
  1224. local snd2=heart_snd2:Clone() snd2.Parent=bullet
  1225. local cl=heart_snd:Clone()cl.Parent=Main cl:Play()
  1226. DEBRIS:AddItem(cl,1)
  1227. local msh=Mesh(_1,mesh_ids.heart,2,2,2)
  1228. _1.CFrame=cfn(l(rarm,0,-1.25).p)*(l(torso)-l(torso).p)
  1229. New"BodyVelocity"{_P=_1;velocity=l(torso).lookVector*30}
  1230. DEBRIS:AddItem(_1,2)
  1231. local con
  1232. con = bullet.Touched:connect(function(hit)
  1233. if hit:IsDescendantOf(character)then return end
  1234.  
  1235. local hum=recurseHum(hit)
  1236. if hum then
  1237. for _,v in pairs(findHum(l(hum.Torso).p,40))do
  1238. if v ~= hum then
  1239. v:MoveTo(l(hum.Torso).p)
  1240. if v.Parent~=character then
  1241. local poo=forcePose(v,{'r_arm','l_arm'}){
  1242. l_arm=ang(PI/2);
  1243. r_arm=ang(PI/2);
  1244. }
  1245. Spawn(function()wait(2)poo:revert()end)
  1246. end
  1247. if not v.Torso:FindFirstChild'Hoo'then
  1248. local heart=Part(1,1,1,'Magenta')
  1249. Weld(_1,v.Torso,0,4)local msh=Mesh(_1,mesh_ids.heart,0,0,0)
  1250. local cl=heart_snd3:Clone()cl.Parent=v.Torso
  1251. cl:Play()
  1252. Spawn(function()
  1253. for i=0,1,.1 do
  1254. msh.Scale=v3n(.9*i,.9*i,.9*i)
  1255. wait()
  1256. end
  1257. heart:Destroy()end)
  1258. DEBRIS:AddItem(cl,1)
  1259. end
  1260.  
  1261.  
  1262. end
  1263. end
  1264. end
  1265. snd2:Play()
  1266. local hearts={}
  1267. con:disconnect()
  1268. for i=1,4 do
  1269. local mini=Part(.1,.1,.1,'Magenta',.5)Mesh(_1,mesh_ids.heart,2,2,2)
  1270. _1.CFrame=l(bullet,mr(-3,3),mr(-3,3),mr(-3,3))
  1271. _1.CFrame=cfn(mini.Position,bullet.Position)
  1272. New"BodyVelocity"{_P=_1;
  1273. -- velocity=(l(_1)*ang(mr(-5,5),mr(-5,5),mr(-5,5))).lookVector*20;
  1274. velocity=cfn(_1.Position,bullet.Position).lookVector*-20;
  1275. }
  1276. table.insert(hearts,mini)
  1277. end
  1278. bullet.Anchored=true
  1279. for i=0,1,.1 do
  1280. Edit(hearts){Transparency=i}
  1281. msh.Scale=v3n(.5,.5,.5)+v3n(i*4,i*4,i*4)
  1282. bullet.Transparency=i
  1283. wait()
  1284. end
  1285. bullet:Destroy()
  1286. for _,v in pairs(hearts)do v:Destroy()end
  1287. end)
  1288. wait(.1)
  1289. until pickup.Count>=pickup.Span
  1290. pickup:Stop()
  1291. for _,v in pairs(Joints)do
  1292. v.beg=v.previous
  1293. end
  1294. for i=0,1,.1 do
  1295. for _,v in pairs(Joints)do
  1296. v.w.C0=v.beg:lerp(v.n_c0,i)
  1297. end
  1298. wait()
  1299. end
  1300. uneq()
  1301. end
  1302.  
  1303. local function doSine(a,b,c)
  1304. return math.sin((tick()*a)+b)*c
  1305. end
  1306.  
  1307. function shake()
  1308. eq()
  1309. -- seq.Count=0
  1310. -- seq:Wait(.5)
  1311. -- local pp=Part(1,1,1)
  1312. -- pp.CFrame=torso.CFrame
  1313. -- _1.Anchored=true
  1314. local stcf=rw.n_c0*ang(md(90))
  1315. local victims=findHum(torso.Position,10,character)
  1316. if #victims>0 then
  1317. local victim=victims[1].Torso
  1318. holding=true
  1319. while holding do
  1320. rw.w.C0=stcf*ang(doSine(20,1,md'45')/2,0,doSine(10,100,md'45')/2)
  1321. local center=cfn(l(rarm,0,-7).p)
  1322. victim.CFrame=center
  1323. wait()
  1324. end
  1325. reset()
  1326. end
  1327. uneq()
  1328. end
  1329.  
  1330. knife_snd=New"Sound"{_P=Main;SoundId='http://www.roblox.com/asset?id=153647529'}
  1331. knife_snd2=New"Sound"{_P=Main;SoundId='http://www.roblox.com/Asset/?id=10756118';Pitch=3}
  1332. function sword()
  1333. eq()
  1334. seq:Play()
  1335. seq:Wait(.5)
  1336. local knife=Part(.4,3,.7)Mesh(knife,'rbxassetid://121944778')_3.TextureId='rbxassetid://121944805'
  1337. local kw=Weld(_1,rarm,0,-1.1,-1,-PI/2)
  1338. local cl=New(knife){_P=Main;BrickColor=bcol'New Yeller';
  1339. Transparency=.75;Reflectance=.25}_4.Mesh.Scale=v3n(1.01,1.01,1.01)
  1340. _4.Mesh.TextureId=''_4:BreakJoints()
  1341. Weld(_4,knife)
  1342. local snd=New(knife_snd2){_P=knife;Looped=true}
  1343. Spawn(function() --sparks
  1344. repeat laser(l(bag).p,knife.Position,1)wait()until knife.Parent==nil
  1345. end)
  1346. seq:Wait(1.3)
  1347. knife_snd:Play()
  1348. local bv=New"BodyVelocity"{_P=knife;velocity=l(torso).lookVector*50}
  1349. local bg=New"BodyGyro"{_P=knife;maxTorque=v3n(1,1,1)*9e+009;cframe=torso.CFrame*ang(-PI/2)}
  1350. knife.Touched:connect(function(hit)
  1351. if hit:IsDescendantOf(character)then return end
  1352. local r=md'65'
  1353. local hum=recurseHum(hit)
  1354. if hum and hum.Parent~= character then
  1355. Spawn(function()
  1356. snd:Play()
  1357. local tim=tick()
  1358. repeat
  1359. hum.Torso.CFrame=hum.Torso.CFrame*ang(mr(-r,r)*mr(),mr(-r,r)*mr(),mr(-r,r)*mr())
  1360. wait()
  1361. until (tick()-tim)>3
  1362. snd:Stop()
  1363. end)
  1364. end
  1365. bg:Destroy()bv:Destroy()
  1366. local CJ=cfn(knife.Position)
  1367. New"Weld"{_P=knife;_PP={knife,hit};C0=l(knife):inverse()*CJ;
  1368. C1=l(hit):inverse()*CJ
  1369. }
  1370. end)
  1371. DEBRIS:AddItem(knife,2)
  1372.  
  1373. kw:Destroy()
  1374. knife.CFrame=l(torso,1.5,.5,-1.1,-PI/2)
  1375. seq:Wait()
  1376. uneq()
  1377. end
  1378.  
  1379. pickup=newAnim(1){
  1380. [0]=init;
  1381. [.5]=poses.pickup;
  1382. [1]={rw=cfn(.3,.3,-.5)*ang(md'120',0,md'60')}
  1383. }
  1384. seq=newAnim(2){
  1385. [0]=init;
  1386. [.5]=poses.pickup;
  1387. [1.25]={rw=ang(md'170',0,0,md'75')};
  1388. [1.3]={rw=ang(md'90')};
  1389. [1.4]={rw=ang(md'-45')};
  1390. [2]=init;
  1391. }
  1392.  
  1393. klist={
  1394. fq=rainbow;
  1395. q=red;
  1396. e=blue;
  1397. r=yellow;
  1398. g=Magenta;
  1399. t=function()for i,v in pairs(Workspace:children())do if v.Name=='M_CAR'then v:Destroy()end end end;
  1400. cq=green;
  1401. zq=sword;
  1402. }
  1403. equipped=false
  1404. attacking=false
  1405.  
  1406. pcall(function()player.Backpack['E.Y.E']:Destroy()end)
  1407. Tool=New"Tool"{_P=player.Backpack;Name='E.Y.E';RequiresHandle=false}
  1408. Tool.Equipped:connect(function(Mouse)
  1409. -- eq()
  1410. equipped=true
  1411. Mouse.KeyUp:connect(function(key)
  1412. for i,v in pairs(klist)do
  1413. if key == i:sub(1,1) and i:sub(2,2) == 'q' then
  1414. holding=false
  1415. end
  1416. end
  1417. end)
  1418. Mouse.KeyDown:connect(function(key)
  1419. if attacking then return end
  1420. attacking=true
  1421. for i,v in pairs(klist)do
  1422. if key==i:sub(1,1) then
  1423. v(Mouse)
  1424. end
  1425. end
  1426. attacking=false
  1427. end)
  1428. end)
  1429. Tool.Unequipped:connect(function()equipped=false end)
  1430. script.Name='riimu'
Add Comment
Please, Sign In to add comment