Advertisement
guestdeznutz

Untitled

Sep 22nd, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.00 KB | None | 0 0
  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
  6. print("FE Compatibility code V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86. local h,t
  87. --Give the server mouse data every second frame, but only if the values changed
  88. --If player is not moving their mouse, client won't fire events
  89. local HB = game:GetService("RunService").Heartbeat
  90. while true do
  91. if h~=Mouse.Hit or t~=Mouse.Target then
  92. h,t=Mouse.Hit,Mouse.Target
  93. Event:FireServer({isMouse=true,Target=t,Hit=h})
  94. end
  95. --Wait 2 frames
  96. for i=1,2 do
  97. HB:Wait()
  98. end
  99. end]==],script)
  100.  
  101. ----Sandboxed game object that allows the usage of client-side methods and services
  102. --Real game object
  103. local RealGame = game
  104.  
  105. --Metatable for fake service
  106. local FakeService_Metatable = {
  107. __index = function(self,k)
  108. local s = rawget(self,"_RealService")
  109. if s then
  110. return typeof(s[k])=="function"
  111. and function(_,...)return s[k](s,...)end or s[k]
  112. end
  113. end,
  114. __newindex = function(self,k,v)
  115. local s = rawget(self,"_RealService")
  116. if s then s[k]=v end
  117. end
  118. }
  119. local function FakeService(t,RealService)
  120. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  121. return setmetatable(t,FakeService_Metatable)
  122. end
  123.  
  124. --Fake game object
  125. local FakeGame = {
  126. GetService = function(self,s)
  127. return rawget(self,s) or RealGame:GetService(s)
  128. end,
  129. Players = FakeService({
  130. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  131. },"Players"),
  132. UserInputService = FakeService(UIS,"UserInputService"),
  133. ContextActionService = FakeService(CAS,"ContextActionService"),
  134. RunService = FakeService({
  135. _btrs = {},
  136. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  137. BindToRenderStep = function(self,name,_,fun)
  138. self._btrs[name] = self.Heartbeat:Connect(fun)
  139. end,
  140. UnbindFromRenderStep = function(self,name)
  141. self._btrs[name]:Disconnect()
  142. end,
  143. },"RunService")
  144. }
  145. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  146. FakeGame.service = FakeGame.GetService
  147. FakeService(FakeGame,game)
  148. --Changing owner to fake player object to support owner:GetMouse()
  149. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  150. end
  151.  
  152. wait(1)
  153. v3 = Vector3.new
  154. cn = CFrame.new
  155. ca2 = CFrame.Angles
  156. mceil = math.ceil mc = mceil
  157. mran = math.random rn=mran
  158. mrad = math.rad rd=mrad
  159. mdeg = math.deg dg=mdeg
  160. mabs = math.abs abs=mabs
  161. ud = UDim2.new
  162. ca = function(x,y,z) return ca2(mrad(x),mrad(y),mrad(z)) end
  163. mran2 = function(a,b) return mran(a*1000,b*1000)/1000 end
  164. bn = BrickColor.new bc=bn
  165. c3 = Color3.new
  166. deb = game:GetService("Debris")
  167.  
  168. Player = game.Players.LocalPlayer
  169. Char = Player.Character
  170. Torso = Char.Torso
  171. Head = Char.Head
  172. Humanoid = Char.Humanoid
  173. RootPart = Char.HumanoidRootPart
  174. Root = RootPart.RootJoint
  175. Mouse = Player:GetMouse()
  176.  
  177. LA=Char["Left Arm"]
  178. RA=Char["Right Arm"]
  179. LL=Char["Left Leg"]
  180. RL=Char["Right Leg"]
  181. LAM=Torso["Left Shoulder"]
  182. RAM=Torso["Right Shoulder"]
  183. LLM=Torso["Left Hip"]
  184. RLM=Torso["Right Hip"]
  185. Neck=Torso.Neck
  186. Neck.C0=cn(0,1.5,0)
  187. Neck.C1=cn(0,0,0)
  188.  
  189. name="Timbersaw"
  190.  
  191. pcall(function() Char["Sawsuit"]:Destroy() end)
  192. pcall(function() Player.PlayerGui[name]:Destroy() end)
  193. pcall(function() Char[name]:Destroy() end)
  194. pcall(function() Char.Block:Destroy() end)
  195. pcall(function() Char.Animate:Destroy() end)
  196.  
  197.  
  198. script.Name = name
  199.  
  200. as = {}
  201. so = {"Block","Hit","Shoot"}
  202. as.Cone = "1033714"
  203. as.Blast = "20329976"
  204. as.Diamond = "9756362"
  205. as.Block = "rbxasset://sounds\\metal.ogg"
  206. as.Wind = "rbxasset://168892363"
  207. as.Hit = "10209583"
  208. as.ElectricShock = "157325701"
  209. as.Shoot = "130849509"
  210. as.Chakram = "74322089"
  211. as.Ring = "3270017"
  212.  
  213.  
  214. iNew=function(tab)
  215. local v=Instance.new(tab[1])
  216. for Ind,Val in pairs(tab) do
  217. if Ind~=1 and Ind~=2 then
  218. v[Ind] = Val
  219. end
  220. end
  221. v.Parent=tab[2]==0 and LastMade or tab[2]
  222. LastMade=v
  223. return v
  224. end
  225.  
  226. iPart=function(tab)
  227. local v=Instance.new(tab.type or "Part")
  228. if tab.type~="CornerWedgePart" then v.formFactor="Custom" end
  229. v.TopSurface=10 v.BottomSurface=10 v.RightSurface=10 v.LeftSurface=10 v.FrontSurface=10 v.BackSurface=10
  230. v.Size=v3(tab[2],tab[3],tab[4])
  231. v.Locked = true
  232. v.Material="SmoothPlastic"
  233. if tab.co then v.BrickColor=bn(tab.co) end
  234. if tab.tr then v.Transparency=tab.tr end
  235. if tab.rf then v.Reflectance=tab.rf end
  236. if tab.cf then v.CFrame=tab.cf end
  237. if tab.an then v.Anchored=tab.an end
  238. if tab.mt then v.Material=tab.mt end
  239. if tab.ca then v.CanCollide=tab.ca end
  240. v.Parent=tab[1]
  241. LastMade=v
  242. return v
  243. end
  244.  
  245. function Raycast(Pos,Dir,Dist,tab)
  246. return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit *Dist),tab)
  247. end
  248.  
  249. function wait2(tim)
  250. local last = tick()
  251. repeat wait(0) until (tick()-last)>=tim
  252. end
  253.  
  254. Block=iNew{"NumberValue",Char,Name="Block",Value=0}
  255.  
  256. Root.C0=cn(0,0,0)
  257. Root.C1=cn(0,0,0)
  258.  
  259. for _,force in pairs(Torso:GetChildren()) do if force:IsA("BodyForce") or force:IsA("BodyGyro") or force:IsA("RocketPropulsion") then force:Destroy() end end
  260.  
  261. pcall(function() Torso.LAW:Remove() Torso.RAW:Remove() Torso.LLW:Remove() Torso.RLW:Remove() end)
  262. LAW=iNew{"Weld",Torso,Name="LAW",Part0=Torso,C0=cn(-1.5,0.5,0),C1=cn(0,0.5,0)}
  263. RAW=iNew{"Weld",Torso,Name="RAW",Part0=Torso,C0=cn( 1.5,0.5,0),C1=cn(0,0.5,0)}
  264. LLW=iNew{"Weld",Torso,Name="LLW",Part0=Torso,C0=cn(-0.5, -1,0),C1=cn(0, 1,0)}
  265. RLW=iNew{"Weld",Torso,Name="RLW",Part0=Torso,C0=cn( 0.5, -1,0),C1=cn(0, 1,0)}
  266.  
  267. function Arms(on)
  268. LAM.Parent=Torso LAM.Part0=Torso
  269. RAM.Parent=Torso RAM.Part0=Torso
  270. LAM.Part1=on and nil or LA
  271. RAM.Part1=on and nil or RA
  272. LAW.Part1=on and LA or nil
  273. RAW.Part1=on and RA or nil
  274. end
  275.  
  276. function Legs(on)
  277. LLM.Parent=Torso LLM.Part0=Torso
  278. RLM.Parent=Torso RLM.Part0=Torso
  279. LLM.Part1=on and nil or LL
  280. RLM.Part1=on and nil or RL
  281. LLW.Part1=on and LL or nil
  282. RLW.Part1=on and RL or nil
  283. end
  284.  
  285. function GetWeld(weld)
  286. if not weld:FindFirstChild("Angle") then
  287. local a = Instance.new("Vector3Value", weld)
  288. a.Name = "Angle"
  289. local x,y,z=weld.C0:toEulerAnglesXYZ()
  290. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  291. end
  292. return weld.C0.p,weld.Angle.Value
  293. end
  294.  
  295. function ClearWeld(weld)
  296. if weld:FindFirstChild"Angle" then
  297. weld.Angle:Remove()
  298. end
  299. end
  300.  
  301. function SetWeld(weld,CC,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  302. local CO="C"..CC
  303. smooth = smooth or 1
  304. if not weld:FindFirstChild("Angle") then
  305. local a = Instance.new("Vector3Value", weld)
  306. a.Name = "Angle"
  307. local x,y,z=weld.C0:toEulerAnglesXYZ()
  308. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  309. end
  310.  
  311. local perc
  312. if smooth == 1 then
  313. perc = math.sin((math.pi/2)/loops*i)
  314. else
  315. perc = i/loops
  316. end
  317.  
  318. local tox,toy,toz = 0,0,0
  319. if origangle.x > nextangle.x then
  320. tox = -mabs(origangle.x - nextangle.x) *perc
  321. else
  322. tox = mabs(origangle.x - nextangle.x) *perc
  323. end
  324. if origangle.y > nextangle.y then
  325. toy = -mabs(origangle.y - nextangle.y) *perc
  326. else
  327. toy = mabs(origangle.y - nextangle.y) *perc
  328. end
  329. if origangle.z > nextangle.z then
  330. toz = -mabs(origangle.z - nextangle.z) *perc
  331. else
  332. toz = mabs(origangle.z - nextangle.z) *perc
  333. end
  334.  
  335. local tox2,toy2,toz2 = 0,0,0
  336. if origpos.x > nextpos.x then
  337. tox2 = -mabs(origpos.x - nextpos.x) *perc
  338. else
  339. tox2 = mabs(origpos.x - nextpos.x) *perc
  340. end
  341. if origpos.y > nextpos.y then
  342. toy2 = -mabs(origpos.y - nextpos.y) *perc
  343. else
  344. toy2 = mabs(origpos.y - nextpos.y) *perc
  345. end
  346. if origpos.z > nextpos.z then
  347. toz2 = -mabs(origpos.z - nextpos.z) *perc
  348. else
  349. toz2 = mabs(origpos.z - nextpos.z) *perc
  350. end
  351. weld.Angle.Value = v3(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  352. weld[CO] = cn(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  353. end
  354.  
  355. function Triangle(p)
  356. local g, v = 0
  357. for s = 1, 3 do
  358. local l = (p[1+(s+1)%3] - p[1+s%3]).magnitude
  359. g, v = l > g and l or g, l > g and {p[1+(s-1)%3], p[1+(s)%3], p[1+(s+1)%3]} or v
  360. end
  361. local d = v[2]+(v[3]-v[2]).unit*((v[3]-v[2]).unit:Dot(v[1]-v[2]))
  362. local c, b = (d-v[1]).unit, (v[2]-v[3]).unit
  363. local a = b:Cross(c)
  364. local w0=iPart{workspace,1,1,1,an=true,tr=0.5,mt="SmoothPlastic",co=cc[2],cf=cn(0,0,0,a.x,b.x,c.x,a.y,b.y,c.y,a.z,b.z,c.z) + (v[1]+v[2])/2} w0.CanCollide = false w0.Name = "unray"
  365. local w1=iPart{workspace,1,1,1,an=true,tr=0.5,mt="SmoothPlastic",co=cc[2],cf=cn(0,0,0,-a.x,-b.x,c.x,-a.y,-b.y,c.y,-a.z,-b.z,c.z) + (v[1]+v[3])/2} w1.CanCollide = false w1.Name = "unray"
  366. local m0=iNew{"SpecialMesh",w0,MeshType="Wedge",Scale=v3(0,(v[2]-d).magnitude,(v[1]-d).magnitude)}
  367. local m1=iNew{"SpecialMesh",w1,MeshType="Wedge",Scale=v3(0,(v[3]-d).magnitude,(v[1]-d).magnitude)}
  368. return w0,w1
  369. end
  370.  
  371. function Lightning(from,to,times,offset,col,thickness,tra)
  372. local magz = (from - to).magnitude
  373. local curpos = from
  374. local trz = {-offset,offset}
  375. for i=1,times do
  376. local li = iPart{workspace,thickness,thickness,magz/times,an=true,tr=tra or 0.4,co=col or "New Yeller"} li.CanCollide = false li.Name = "unray"
  377. local ofz = v3(trz[mran(1,2)],trz[mran(1,2)],trz[mran(1,2)])
  378. local trolpos = cn(curpos,to)*cn(0,0,magz/times).p+ofz
  379. if times == i then
  380. local magz2 = (curpos - to).magnitude
  381. li.Size = v3(thickness,thickness,magz2)
  382. li.CFrame = cn(curpos,to)*cn(0,0,-magz2/2)
  383. else
  384. li.CFrame = cn(curpos,trolpos)*cn(0,0,magz/times/2)
  385. end
  386. curpos = li.CFrame*cn(0,0,magz/times/2).p
  387. deb:AddItem(li,0.25)
  388. end
  389. end
  390.  
  391. function PlaySound(sound,pitch,volume,parent)
  392. local newSound = iNew{"Sound",parent or Torso,Pitch=pitch,Volume=volume,Name=sound,SoundId=sound}
  393. newSound:Play()
  394. deb:AddItem(newSound,6)
  395. return newSound
  396. end
  397.  
  398. function MeshEffect(par,cf,x,y,z,inc,col,sha,adj)
  399. local adj = adj or cn(0,0,0)
  400. local mp=iPart{par,1,1,1,co=col,tr=0.3,ca=false,an=true} mp.CFrame=cf mp.Name="unray"
  401. local ms
  402. if sha:sub(1,4)=="http" then
  403. ms=iNew{"SpecialMesh",mp,MeshId=sha}
  404. elseif sha=="Block" then
  405. ms=iNew{"BlockMesh",mp}
  406. elseif sha=="Cylinder" then
  407. ms=iNew{"CylinderMesh",mp}
  408. elseif sha=="Head" or sha=="Sphere" then
  409. ms=iNew{"SpecialMesh",mp,MeshType=sha}
  410. end
  411. deb:AddItem(mp,0.7)
  412. Spawn(function()
  413. for i=0,1,inc do
  414. mp.Transparency=0.3+(1*i)
  415. mp.CFrame=mp.CFrame*adj
  416. ms.Scale=v3(x,y,z)*(0.3+(1*i))
  417. if i>=1 or mp.Transparency >= 1 then mp:Destroy() end
  418. wait(0)
  419. end
  420. end)
  421. end
  422.  
  423. Dmg=true
  424. Dmgv={10,15}
  425. HitDebounce={}
  426. Mult = 1
  427. Damage=function(Hum,Damage)
  428. local HName = Hum.Parent.Name
  429. if HitDebounce[HName] and HitDebounce[HName]>tick() then return end
  430. HitDebounce[HName] = tick()+0.6
  431. local Dealt = Damage*Mult
  432. local col = ""
  433.  
  434. if Hum.Parent:findFirstChild("Block") and Hum.Parent.Block:IsA("NumberValue") and Hum.Parent.Block.Value>0 then
  435. Hum.Parent.Block.Value=Hum.Parent.Block.Value-1
  436. col="Bright blue"
  437. PlaySound(as.Block,1,1,Torso)
  438. else
  439. Hum:TakeDamage(Dealt)
  440. col="Bright red"
  441. PlaySound(as.Hit,1,1,Torso)
  442. end
  443. Knockback(Hum.Parent.Torso,Torso.Position,20,0.2)
  444. local DoH=iNew{'Model',workspace,Name=col=='Bright blue' and 'Block' or Dealt}
  445. iNew{'Humanoid',DoH,MaxHealth=0,Health=0,Name=''}
  446. local Doh=iPart{DoH,1,0.2,1,co=col,an=true} Doh.Name='Head' Doh.CanCollide = false
  447. iNew{'BlockMesh',Doh}
  448. local dofs=Hum.Parent.Torso.CFrame*cn(mran2(-1.5,1.5),2.5,mran2(-1,1))
  449. Doh.CFrame=dofs
  450. deb:AddItem(Doh,1)
  451. end
  452.  
  453. local Suit = iNew{"Model",Char,Name="Sawsuit"}
  454. cc = {"Black","Dark stone grey","Brown","Olive","Bright red","Bright orange","Bright yellow","Medium stone grey","Bright green","Bright blue","White","Bright purple",
  455. "Really black"}
  456. ButtonColors = {cc[5],cc[7],cc[9],cc[10],cc[12]}
  457. Stand = iPart{Suit,2,2,1,tr=1}
  458. wStand = iNew{"Weld",Suit,Part0=RootPart,Part1=Stand,C0=cn(0,0,0),C1=cn(0,0.5,0.5)}
  459.  
  460. for i=360/12,360,360/12 do
  461. local Wood = iPart{Suit,1.5,1,0.5,mt="WoodPlanks",co=cc[3]}
  462. iNew{"Weld",Suit,Part0=Stand,Part1=Wood,C0=cn(0,0,0)*ca(0,i,0)*cn(0,0,-2.5)}
  463. local Int = iPart{Suit,1.25,0.2,1,co=cc[2]}
  464. iNew{"Weld",Suit,Part0=Wood,Part1=Int,C0=cn(0,0.5,0.75)}
  465. local Metal = iPart{Suit,1.5,0.4,0.7,mt="DiamondPlate",co=cc[2]}
  466. iNew{"Weld",Suit,Part0=Wood,Part1=Metal,C0=cn(0,1.4/2,0)}
  467. local Wood2 = iPart{Suit,1.5,0.75,0.5,mt="WoodPlanks",co=cc[3]}
  468. iNew{"Weld",Suit,Part0=Wood,Part1=Wood2,C0=cn(0,-1.75/4,-0.25)*ca(-25,0,0)*cn(0,-1.75/4,0.25)}
  469. end
  470.  
  471. SmokeStack = iPart{Suit,0.4,2,0.4,co=cc[2]}
  472. iNew{"Weld",Suit,Part0=Stand,Part1=SmokeStack,C0=cn(1.75,1.5,1.25)}
  473. iNew{"CylinderMesh",SmokeStack}
  474. StackBall = iPart{Suit,0.8,0.8,0.8,co=cc[2]}
  475. iNew{"Weld",Suit,Part0=SmokeStack,Part1=StackBall,C0=cn(0,1,0)}
  476. iNew{"SpecialMesh",StackBall,MeshType="Sphere"}
  477. StackC = iPart{Suit,1,0.2,1,co=cc[5]}
  478. iNew{"Weld",Suit,Part0=SmokeStack,Part1=StackC,C0=cn(0,1,0)}
  479. iNew{"CylinderMesh",StackC}
  480. Cone = iPart{Suit,0,0,0,co=cc[5]}
  481. iNew{"Weld",Suit,Part0=StackC,Part1=Cone,C0=cn(0,0.5,0)}
  482. iNew{"SpecialMesh",Cone,MeshId=as.Cone,Scale=v3(0.4,1.1,0.4)}
  483. StackC2 = iPart{Suit,0.55,0.2,0.55,co=cc[6]}
  484. iNew{"Weld",Suit,Part0=StackC,Part1=StackC2,C0=cn(0,0.5,0)}
  485. iNew{"CylinderMesh",StackC2,Scale=v3(1,0.5,1)}
  486. Cone2 = iPart{Suit,0,0,0,co=cc[5]}
  487. iNew{"Weld",Suit,Part0=Cone,Part1=Cone2,C0=cn(0,0,0)*ca(180,0,0)}
  488. iNew{"SpecialMesh",Cone2,MeshId=as.Cone,Scale=v3(0.4,1.3,0.4)}
  489. Hole = iPart{Suit,0.6,0.2,0.6,co=cc[2]}
  490. iNew{"Weld",Suit,Part0=Cone2,Part1=Hole,C0=cn(0,-0.5,0)}
  491. iNew{"CylinderMesh",Hole,Scale=v3(1,0.1,1)}
  492. StackTop = iPart{Suit,0.8,0.2,0.8,co=cc[5]}
  493. iNew{"Weld",Suit,Part0=Hole,Part1=StackTop,C0=cn(-0.4,-0,0)*ca(0,0,-30)*cn(0.4,0,0)}
  494. iNew{"CylinderMesh",StackTop,Scale=v3(1,0.5,1)}
  495. iNew{"Smoke",Hole,Color=bn(cc[13]).Color,RiseVelocity=-10,Size=1,Opacity = 0.4}
  496.  
  497. BackCyl = iPart{Suit,0,0,0,co=cc[2],mt="DiamondPlate"}
  498. iNew{"Weld",Suit,Part0=Stand,Part1=BackCyl,C0=cn(0,0.5,2)}
  499. iNew{"SpecialMesh",BackCyl,MeshType="Sphere",Scale=v3(3,4.5,1.25)/0.2}
  500. SeatBack = iPart{Suit,2.25,3,0.3,co=cc[1]}
  501. iNew{"Weld",Suit,Part0=Stand,Part1=SeatBack,C0=cn(0,0.5,1.2)*ca(5,0,0)}
  502. SeatBack2 = iPart{Suit,2.25*0.9,3*0.9,0.2,mt="Fabric",co=cc[6]}
  503. iNew{"Weld",Suit,Part0=SeatBack,Part1=SeatBack2,C0=cn(0,0,-0.25)}
  504. for i=-1,1,2 do
  505. SeatS = iPart{Suit,0.2,1.5,2,co=cc[1]}
  506. iNew{"Weld",Suit,Part0=SeatBack,Part1=SeatS,C0=cn((2.05/2)*i,0,0.1)*ca(0,-15*i,0)*cn(0,0,-1)}
  507. SeatS2 = iPart{Suit,0.2,1.5*0.9,2*0.9,mt="Fabric",co=cc[6]}
  508. iNew{"Weld",Suit,Part0=SeatS,Part1=SeatS2,C0=cn(-0.1*i,0,0)}
  509. end
  510.  
  511. Levers = {}
  512. for i=-1,1,2 do
  513. local LevJ = iPart{Suit,0,0,0,tr=0.5}
  514. local LeverW = iNew{"Weld",Suit,Part0=Stand,Part1=LevJ,C0=cn(i,0.6,-1.5)}
  515. local Lever = iPart{Suit,0.2,1,0.2,co=cc[8]}
  516. iNew{"Weld",Suit,Part0=LevJ,Part1=Lever,C0=cn(0,0.5,0)}
  517. table.insert(Levers,{LeverW})
  518. iNew{"CylinderMesh",Lever}
  519. local LeverBall = iPart{Suit,0.5,0.5,0.5,co=cc[6]}
  520. iNew{"Weld",Suit,Part0=Lever,Part1=LeverBall,C0=cn(0,0.6,0)}
  521. iNew{"SpecialMesh",LeverBall,MeshType="Sphere"}
  522. end
  523.  
  524. for i=-1,1,1 do
  525. local Button = iPart{Suit,0.3,0.2,0.3,co=ButtonColors[mran(1,#ButtonColors)]}
  526. iNew{"Weld",Suit,Part0=Stand,Part1=Button,C0=cn(0.5*i,0.6,-1.5)}
  527. iNew{"CylinderMesh",Button,Scale=v3(1,0.5,1)}
  528. end
  529.  
  530. Chakram = iPart{Suit,5,5,1,co=cc[2]} Chakram.Name="Chakram"
  531. wChakram = iNew{"Weld",Suit,Part0=Stand,Part1=Chakram,C0=cn(0,-1.4,0)*ca(90,0,0)}
  532. iNew{"SpecialMesh",Chakram,MeshId=as.Chakram,Scale=v3(5.5,5.5,5)}
  533. for i=-1,1,2 do
  534. Cyl = iPart{Suit,6,0.2,6,co=cc[2]}
  535. iNew{"Weld",Suit,Part0=Stand,Part1=Cyl,C0=cn(0,-1.4+i/5,0)}
  536. iNew{"CylinderMesh",Cyl}
  537. end
  538. for i=360/8,360,360/8 do
  539. local Bolt = iPart{Suit,0.2,0.2,0.2,co=cc[4],mt="DiamondPlate"}
  540. iNew{"Weld",Suit,Part0=Cyl,Part1=Bolt,C0=cn(0,0.1,0)*ca(0,i,0)*cn(0,0,-2.75)}
  541. iNew{"SpecialMesh",Bolt,MeshType="Sphere",Scale=v3(1,0.75,1)}
  542. end
  543.  
  544. Ball = iPart{Suit,4.5,3.5,4,co=cc[1]}
  545. wBall = iNew{"Weld",Suit,Part0=Stand,Part1=Ball,C0=cn(0,-1.5,0)}
  546. iNew{"SpecialMesh",Ball,MeshType="Sphere"}
  547. BallM = iPart{Suit,2,3.5*1.1,4*1.1,co=cc[2]}
  548. iNew{"Weld",Suit,Part0=Ball,Part1=BallM,C0=cn(0,0,0)}
  549. iNew{"SpecialMesh",BallM,MeshType="Sphere"}
  550. LArmConnect = iPart{Suit,0.25,1.25,0.5,co=cc[2],mt="DiamondPlate"}
  551. iNew{"Weld",Suit,Part0=Stand,Part1=LArmConnect,C0=cn(-2.275,1.525,0)}
  552. ConnectTop = iPart{Suit,0.5,0.2475,0.5,co=cc[2],mt="DiamondPlate"}
  553. iNew{"Weld",Suit,Part0=LArmConnect,Part1=ConnectTop,C0=cn(0,1.25/2,0)*ca(0,0,90)}
  554. iNew{"CylinderMesh",ConnectTop}
  555. CCyl = iPart{Suit,2,0.25,2,co=cc[4],mt="DiamondPlate"}
  556. iNew{"Weld",Suit,Part0=LArmConnect,Part1=CCyl,C0=cn(-0.25,-0.125,0)*ca(0,0,90)}
  557. iNew{"CylinderMesh",CCyl}
  558. CCyl2 = iPart{Suit,2.5,0.35,2.5,co=cc[5],mt="DiamondPlate"}
  559. iNew{"Weld",Suit,Part0=CCyl,Part1=CCyl2,C0=cn(0,0.3,0)}
  560. iNew{"CylinderMesh",CCyl2}
  561. CCyl3 = iPart{Suit,2,0.25,2,co=cc[2],mt="DiamondPlate"}
  562. iNew{"Weld",Suit,Part0=CCyl2,Part1=CCyl3,C0=cn(0,0.25,0)}
  563. iNew{"CylinderMesh",CCyl3}
  564. CCyl4 = iPart{Suit,1.5,0.25,1.5,co=cc[5],mt="DiamondPlate"}
  565. iNew{"Weld",Suit,Part0=CCyl3,Part1=CCyl4,C0=cn(0,0.25,0)}
  566. iNew{"CylinderMesh",CCyl4}
  567.  
  568. LArm = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"}
  569. wLArm = iNew{"Weld",Suit,Part0=CCyl4,Part1=LArm,C0=ca(-35,0,45)}
  570. iNew{"SpecialMesh",LArm,MeshType="Sphere"}
  571. ArmE = iPart{Suit,0.5,1.5,0.5,co=cc[2]}
  572. iNew{"Weld",Suit,Part0=LArm,Part1=ArmE,C0=cn(0,1.25,0)}
  573. iNew{"CylinderMesh",ArmE}
  574. LArm2 = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"}
  575. wLArm2 = iNew{"Weld",Suit,Part0=ArmE,Part1=LArm2,C0=cn(0,0.75,0)*ca(-80,100,0)}
  576. iNew{"SpecialMesh",LArm2,MeshType="Sphere"}
  577. ArmF = iPart{Suit,1.35,0.25,1.35,co=cc[5],mt="DiamondPlate"}
  578. iNew{"Weld",Suit,Part0=LArm2,Part1=ArmF}
  579. iNew{"CylinderMesh",ArmF}
  580. ArmFM = iPart{Suit,1.25,1,1.25,co=cc[3],mt="WoodPlanks"}
  581. iNew{"Weld",Suit,Part0=ArmF,Part1=ArmFM,C0=cn(0,0.5,0)}
  582. iNew{"CylinderMesh",ArmFM}
  583. ArmF = iPart{Suit,1.35,0.25,1.35,co=cc[5],mt="DiamondPlate"}
  584. iNew{"Weld",Suit,Part0=ArmFM,Part1=ArmF,C0=cn(0,0.5,0)}
  585. iNew{"CylinderMesh",ArmF}
  586. ArmAnt = iPart{Suit,0.4,0.75,0.4,co=cc[5],mt="DiamondPlate"}
  587. iNew{"Weld",Suit,Part0=ArmFM,Part1=ArmAnt,C0=cn(-0.775,-0.25,0)}
  588. iNew{"CylinderMesh",ArmAnt}
  589. ArmAnt2 = iPart{Suit,0.2,0.75,0.2,co=cc[8]}
  590. iNew{"Weld",Suit,Part0=ArmAnt,Part1=ArmAnt2,C0=cn(0,-0.75,0)}
  591. iNew{"CylinderMesh",ArmAnt2}
  592. ArmAnt3 = iPart{Suit,0.35,0.2,0.35,co=cc[2]}
  593. iNew{"Weld",Suit,Part0=ArmAnt,Part1=ArmAnt3,C0=cn(0,0.75/2,0)}
  594. iNew{"CylinderMesh",ArmAnt3,Scale=v3(1,0.1,1)}
  595. ArmAnt4 = iPart{Suit,0.3,0.3,0.3,co=cc[5]}
  596. iNew{"Weld",Suit,Part0=ArmAnt2,Part1=ArmAnt4,C0=cn(0,-0.75/2,0)}
  597. iNew{"CylinderMesh",ArmAnt4}
  598. for i=-1,1,2 do
  599. local BladeH = iPart{Suit,0.5,1.25,0.2,co=cc[2],mt="DiamondPlate"}
  600. iNew{"Weld",Suit,Part0=ArmF,Part1=BladeH,C0=cn(0,0.75,i/5)}
  601. local BladeH2 = iPart{Suit,0.5,0.2,0.5,co=cc[2],mt="DiamondPlate"}
  602. iNew{"Weld",Suit,Part0=BladeH,Part1=BladeH2,C0=cn(0,1.25/2,0)*ca(90,0,0)}
  603. iNew{"CylinderMesh",BladeH2,Scale=v3(1,0.99,1)}
  604. local Bolt = iPart{Suit,0.2,0.2,0.2,co=cc[8]}
  605. iNew{"Weld",Suit,Part0=BladeH2,Part1=Bolt,C0=cn(0,(0.25/2)*i,0)}
  606. iNew{"CylinderMesh",Bolt,Scale=v3(1,0.25,1)}
  607. local Bolt = iPart{Suit,0.2,0.2,0.2,co=cc[8]}
  608. iNew{"Weld",Suit,Part0=BladeH,Part1=Bolt,C0=cn(0,0,(0.25/2)*i)*ca(90,0,0)}
  609. iNew{"CylinderMesh",Bolt,Scale=v3(1,0.25,1)}
  610. end
  611. ArmSawP = iPart{Suit,0.8,2,0.2,co=cc[8]}
  612. iNew{"Weld",Suit,Part0=ArmF,Part1=ArmSawP,C0=cn(0,2.25,0)}
  613. for i=-1,1,2 do
  614. local ArmSawC = iPart{Suit,0.8,0.2,0.8,co=cc[8]}
  615. iNew{"Weld",Suit,Part0=ArmSawP,Part1=ArmSawC,C0=cn(0,1*i,0)*ca(90,0,0)}
  616. iNew{"CylinderMesh",ArmSawC,Scale=v3(1,0.99,1)}
  617. end
  618. for i=-1,1,1 do
  619. local ArmSawC = iPart{Suit,0.3,0.2,0.3,co=cc[8],mt="DiamondPlate"}
  620. iNew{"Weld",Suit,Part0=ArmSawP,Part1=ArmSawC,C0=cn(0,0.9*i,0.25/2)*ca(90,0,0)}
  621. iNew{"CylinderMesh",ArmSawC,Scale=v3(1,0.25,1)}
  622. end
  623. Saw0 = iPart{Suit,0,0,0,tr=1}
  624. iNew{"Weld",Suit,Part0=ArmSawP,Part1=Saw0,C0=ca(90,90,0)}
  625.  
  626. Saws = {}
  627. for i=1,28 do
  628. local Saw = iPart{Suit,0.55,0.2,i%2==0 and 0.55 or 0.8,co=cc[2]} Saw.Name="Saw"
  629. local wSaw = iNew{"Weld",Suit,Part0=Saw0,Part1=Saw}
  630. iNew{"BlockMesh",Saw,Scale=v3(1,0.5,1)}
  631. table.insert(Saws,{Saw,wSaw})
  632. end
  633.  
  634. RArmConnect = iPart{Suit,0.25,1.25,0.5,co=cc[2],mt="DiamondPlate"}
  635. iNew{"Weld",Suit,Part0=Stand,Part1=RArmConnect,C0=cn(2.275,1.525,0)}
  636. ConnectTop = iPart{Suit,0.5,0.2475,0.5,co=cc[2],mt="DiamondPlate"}
  637. iNew{"Weld",Suit,Part0=RArmConnect,Part1=ConnectTop,C0=cn(0,1.25/2,0)*ca(0,0,90)}
  638. iNew{"CylinderMesh",ConnectTop}
  639. CCyl = iPart{Suit,2,0.25,2,co=cc[4],mt="DiamondPlate"}
  640. iNew{"Weld",Suit,Part0=RArmConnect,Part1=CCyl,C0=cn(0.25,-0.125,0)*ca(0,0,-90)}
  641. iNew{"CylinderMesh",CCyl}
  642. CCyl2 = iPart{Suit,2.5,0.35,2.5,co=cc[5],mt="DiamondPlate"}
  643. iNew{"Weld",Suit,Part0=CCyl,Part1=CCyl2,C0=cn(0,0.3,0)}
  644. iNew{"CylinderMesh",CCyl2}
  645. CCyl3 = iPart{Suit,2,0.25,2,co=cc[2],mt="DiamondPlate"}
  646. iNew{"Weld",Suit,Part0=CCyl2,Part1=CCyl3,C0=cn(0,0.25,0)}
  647. iNew{"CylinderMesh",CCyl3}
  648. CCyl4 = iPart{Suit,1.5,0.25,1.5,co=cc[5],mt="DiamondPlate"}
  649. iNew{"Weld",Suit,Part0=CCyl3,Part1=CCyl4,C0=cn(0,0.25,0)}
  650. iNew{"CylinderMesh",CCyl4}
  651.  
  652. RArm = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"}
  653. wRArm = iNew{"Weld",Suit,Part0=CCyl4,Part1=RArm,C0=ca(0,-35,-50)}
  654. iNew{"SpecialMesh",RArm,MeshType="Sphere"}
  655. ArmE = iPart{Suit,0.5,1.5,0.5,co=cc[2]}
  656. iNew{"Weld",Suit,Part0=RArm,Part1=ArmE,C0=cn(0,1.25,0)}
  657. iNew{"CylinderMesh",ArmE}
  658. RArm2 = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"}
  659. wRArm2 = iNew{"Weld",Suit,Part0=ArmE,Part1=RArm2,C0=cn(0,0.75,0)*ca(0,90,-65)}
  660. iNew{"SpecialMesh",RArm2,MeshType="Sphere"}
  661. ArmF = iPart{Suit,1.35,0.25,1.35,co=cc[5],mt="DiamondPlate"}
  662. iNew{"Weld",Suit,Part0=RArm2,Part1=ArmF}
  663. iNew{"CylinderMesh",ArmF}
  664. ArmFM = iPart{Suit,1.25,1,1.25,co=cc[3],mt="WoodPlanks"}
  665. iNew{"Weld",Suit,Part0=ArmF,Part1=ArmFM,C0=cn(0,0.5,0)}
  666. iNew{"CylinderMesh",ArmFM}
  667. ArmF = iPart{Suit,1.35,0.25,1.35,co=cc[5],mt="DiamondPlate"}
  668. iNew{"Weld",Suit,Part0=ArmFM,Part1=ArmF,C0=cn(0,0.5,0)}
  669. iNew{"CylinderMesh",ArmF}
  670. ArmAnt = iPart{Suit,0.4,0.75,0.4,co=cc[5],mt="DiamondPlate"}
  671. iNew{"Weld",Suit,Part0=ArmFM,Part1=ArmAnt,C0=cn(-0.775,-0.25,0)}
  672. iNew{"CylinderMesh",ArmAnt}
  673. ArmAnt2 = iPart{Suit,0.2,0.75,0.2,co=cc[8]}
  674. iNew{"Weld",Suit,Part0=ArmAnt,Part1=ArmAnt2,C0=cn(0,-0.75,0)}
  675. iNew{"CylinderMesh",ArmAnt2}
  676. ArmAnt3 = iPart{Suit,0.35,0.2,0.35,co=cc[2]}
  677. iNew{"Weld",Suit,Part0=ArmAnt,Part1=ArmAnt3,C0=cn(0,0.75/2,0)}
  678. iNew{"CylinderMesh",ArmAnt3,Scale=v3(1,0.1,1)}
  679. ArmAnt4 = iPart{Suit,0.3,0.3,0.3,co=cc[5]}
  680. iNew{"Weld",Suit,Part0=ArmAnt2,Part1=ArmAnt4,C0=cn(0,-0.75/2,0)}
  681. iNew{"CylinderMesh",ArmAnt4}
  682.  
  683. for i=360/12,360,360/12 do
  684. local ArmP = iPart{Suit,0.45,0.8,0.2,co=cc[8]} ArmP.Name = "Saw"
  685. iNew{"Weld",Suit,Part0=ArmF,Part1=ArmP,C0=cn(0,0.4,0)*ca(0,i,0)*cn(0,0,0.6)*ca(20,0,0)}
  686. end
  687. for i=360/3,360,360/3 do
  688. local HookP = iPart{Suit,0.5,0.5,0.2,co=cc[8]} HookP.Name = "Saw"
  689. iNew{"Weld",Suit,Part0=ArmF,Part1=HookP,C0=cn(0,0.9,0)*ca(0,i,0)*cn(0,0,0.85)*ca(40,0,0)}
  690. local HookP2 = iPart{Suit,0.5,0.7,0.2,co=cc[8]} HookP2.Name = "Saw"
  691. iNew{"Weld",Suit,Part0=HookP,Part1=HookP2,C0=cn(0,0.25,0.1)*ca(-75,0,0)*cn(0,0.35,-0.1)}
  692. end
  693. Hole = iPart{Suit,1.1,0.2,1.1,co=cc[13]}
  694. iNew{"Weld",Suit,Part0=ArmF,Part1=Hole,C0=cn(0,0.125,0)}
  695. iNew{"CylinderMesh",Hole,Scale=v3(1,0.1,1)}
  696. LLeg = iPart{Suit,1.5,1.5,1.5,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  697. wLLeg = iNew{"Weld",Suit,Part0=Ball,Part1=LLeg,C0=cn(-1.5,-1.25,-0.25)*ca(25,0,20)}
  698. iNew{"SpecialMesh",LLeg,MeshType="Sphere"}
  699. LegE = iPart{Suit,0.75,1.5,0.75,co=cc[2]} LastMade.CanCollide = false
  700. iNew{"Weld",Suit,Part0=LLeg,Part1=LegE,C0=cn(0,-1.25,0)}
  701. iNew{"CylinderMesh",LegE}
  702. LLeg2 = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  703. wLLeg2 = iNew{"Weld",Suit,Part0=LegE,Part1=LLeg2,C0=cn(0,-0.75,0)*ca(-45,0,0)}
  704. iNew{"SpecialMesh",LLeg2,MeshType="Sphere"}
  705. LegE = iPart{Suit,0.75,1,0.75,co=cc[2]} LastMade.CanCollide = false
  706. iNew{"Weld",Suit,Part0=LLeg2,Part1=LegE,C0=cn(0,-1,0)}
  707. iNew{"CylinderMesh",LegE}
  708. LLeg3 = iPart{Suit,1,1,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  709. wLLeg3 = iNew{"Weld",Suit,Part0=LegE,Part1=LLeg3,C0=cn(0,-0.5,0)*ca(0,0,0)}
  710. iNew{"SpecialMesh",LLeg3,MeshType="Sphere"}
  711.  
  712. LFoot = iPart{Suit,1.5,0.5,2.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  713. iNew{"Weld",Suit,Part0=LLeg3,Part1=LFoot,C0=cn(0,-0.5,-0.5)*ca(0,0,0)}
  714. FootT = iPart{Suit,1,0.25,1.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  715. iNew{"Weld",Suit,Part0=LFoot,Part1=FootT,C0=cn(0,0.75/2,0.5)}
  716. FootT2 = iPart{Suit,1,0.25,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  717. iNew{"Weld",Suit,Part0=FootT,Part1=FootT2,C0=cn(0,0,-2.25/2+0.5)}
  718. iNew{"CylinderMesh",FootT2}
  719. for i=-1,1,2 do
  720. local FootWedge = iPart{Suit,1.5/4,0.5,0.75,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  721. iNew{"Weld",Suit,Part0=LFoot,Part1=FootWedge,C0=cn((0.75-(1.5/4/2))*i,0,-2.25/2-0.75/2)}
  722. iNew{"SpecialMesh",FootWedge,MeshType="Wedge"}
  723. local FootPart = iPart{Suit,1.5/4,0.5,0.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  724. iNew{"Weld",Suit,Part0=LFoot,Part1=FootPart,C0=cn((0.75-(1.5/4)*1.5)*i,0,-2.25/2-0.25/2)}
  725. local FootPart = iPart{Suit,1.5/4,0.5,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  726. iNew{"Weld",Suit,Part0=LFoot,Part1=FootPart,C0=cn((0.75-(1.5/4)*1.5)*i,0,-2.5/2-1/2-0.125)}
  727. iNew{"SpecialMesh",FootPart,MeshType="Wedge"}
  728. end
  729. for i=-1,1,1 do
  730. local Bolt = iPart{Suit,0.3,0.2,0.3,co=cc[2],mt="DiamondPlate"} LastMade.CanCollide = false
  731. iNew{"Weld",Suit,Part0=FootT2,Part1=Bolt,C0=cn(0.5*i,-0.1,i==0 and -0.9 or -0.75)}
  732. iNew{"CylinderMesh",Bolt,Scale=v3(1,0.5,1)}
  733. end
  734.  
  735. RLeg = iPart{Suit,1.5,1.5,1.5,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  736. wRLeg = iNew{"Weld",Suit,Part0=Ball,Part1=RLeg,C0=cn(1.5,-1.25,-0.25)*ca(25,0,-20)}
  737. iNew{"SpecialMesh",RLeg,MeshType="Sphere"}
  738. LegE = iPart{Suit,0.75,1.5,0.75,co=cc[2]} LastMade.CanCollide = false
  739. iNew{"Weld",Suit,Part0=RLeg,Part1=LegE,C0=cn(0,-1.25,0)}
  740. iNew{"CylinderMesh",LegE}
  741. RLeg2 = iPart{Suit,1.25,1.25,1.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  742. wRLeg2 = iNew{"Weld",Suit,Part0=LegE,Part1=RLeg2,C0=cn(0,-0.75,0)*ca(-45,0,0)}
  743. iNew{"SpecialMesh",RLeg2,MeshType="Sphere"}
  744. LegE = iPart{Suit,0.75,1,0.75,co=cc[2]} LastMade.CanCollide = false
  745. iNew{"Weld",Suit,Part0=RLeg2,Part1=LegE,C0=cn(0,-1,0)}
  746. iNew{"CylinderMesh",LegE}
  747. RLeg3 = iPart{Suit,1,1,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  748. wRLeg3 = iNew{"Weld",Suit,Part0=LegE,Part1=RLeg3,C0=cn(0,-0.5,0)*ca(0,0,0)}
  749. iNew{"SpecialMesh",RLeg3,MeshType="Sphere"}
  750.  
  751. RFoot = iPart{Suit,1.5,0.5,2.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  752. iNew{"Weld",Suit,Part0=RLeg3,Part1=RFoot,C0=cn(0,-0.5,-0.5)*ca(0,0,0)}
  753. FootT = iPart{Suit,1,0.25,1.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  754. iNew{"Weld",Suit,Part0=RFoot,Part1=FootT,C0=cn(0,0.75/2,0.5)}
  755. FootT2 = iPart{Suit,1,0.25,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  756. iNew{"Weld",Suit,Part0=FootT,Part1=FootT2,C0=cn(0,0,-2.25/2+0.5)}
  757. iNew{"CylinderMesh",FootT2}
  758. for i=-1,1,2 do
  759. local FootWedge = iPart{Suit,1.5/4,0.5,0.75,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  760. iNew{"Weld",Suit,Part0=RFoot,Part1=FootWedge,C0=cn((0.75-(1.5/4/2))*i,0,-2.25/2-0.75/2)}
  761. iNew{"SpecialMesh",FootWedge,MeshType="Wedge"}
  762. local FootPart = iPart{Suit,1.5/4,0.5,0.25,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  763. iNew{"Weld",Suit,Part0=RFoot,Part1=FootPart,C0=cn((0.75-(1.5/4)*1.5)*i,0,-2.25/2-0.25/2)}
  764. local FootPart = iPart{Suit,1.5/4,0.5,1,co=cc[1],mt="DiamondPlate"} LastMade.CanCollide = false
  765. iNew{"Weld",Suit,Part0=RFoot,Part1=FootPart,C0=cn((0.75-(1.5/4)*1.5)*i,0,-2.5/2-1/2-0.125)}
  766. iNew{"SpecialMesh",FootPart,MeshType="Wedge"}
  767. end
  768. for i=-1,1,1 do
  769. local Bolt = iPart{Suit,0.3,0.2,0.3,co=cc[2],mt="DiamondPlate"} LastMade.CanCollide = false
  770. iNew{"Weld",Suit,Part0=FootT2,Part1=Bolt,C0=cn(0.5*i,-0.1,i==0 and -0.9 or -0.75)}
  771. iNew{"CylinderMesh",Bolt,Scale=v3(1,0.5,1)}
  772. end
  773.  
  774. Char:MoveTo(Torso.Position+v3(0,10,0))
  775.  
  776. function AoEFind(Pos,Range)
  777. local fHumans = {}
  778. for i,v in pairs(workspace:GetChildren()) do
  779. local fHum,fTorso,fHead = GetHuman(v)
  780. if fHum and fTorso and fHead and v.Name~=Player.Name then
  781. if (fTorso.Position-Pos).magnitude<=Range then
  782. table.insert(fHumans,v)
  783. end
  784. end
  785. end
  786. return fHumans
  787. end
  788.  
  789. HitData = {}
  790. function AoEBreak(Pos,Range,Force,PropDmg)
  791. local function r(d)
  792. for i,v in pairs(d:GetChildren()) do
  793. if v:IsA("BasePart") and v.Name~="Terrain" then
  794. if (v.Position-Pos).magnitude<Range then
  795. local fHum,fTorso,fHead = GetHuman(v.Parent)
  796. if fHum and fTorso and fHead then return end
  797. if v:IsDescendantOf(Char) or v.Name=="unray" then return end
  798.  
  799. local broke = false
  800. if not HitData[v] then
  801. local hh = v:GetMass()/1.5
  802. HitData[v] = hh
  803. end
  804. HitData[v]=HitData[v]-PropDmg
  805. if HitData[v]<=0 then
  806. v.Anchored = false
  807. v:BreakJoints()
  808. broke=true
  809. end
  810. if broke then
  811. v.Velocity=cn(Pos,v.Position).lookVector*Force
  812. end
  813. end
  814. else
  815. r(v)
  816. end
  817. end
  818. end
  819. r(workspace)
  820. end
  821.  
  822. function GetHuman(model)
  823. local foundHum
  824. local foundTorso
  825. local foundHead
  826. if #model:GetChildren()==0 then return end
  827. for i,v in pairs(model:GetChildren()) do
  828. if v:IsA("Humanoid") then
  829. foundHum = v
  830. elseif v.Name == "Torso" then
  831. foundTorso = v
  832. elseif v.Name == "Head" then
  833. foundHead = v
  834. end
  835. end
  836. return foundHum,foundTorso,foundHead
  837. end
  838.  
  839. function Knockback(fTor,face,str,dur)
  840. local bodyVelo = iNew{"BodyVelocity",fTor,P=1250,maxForce=v3(1,1,1)/0,velocity=cn(face,fTor.Position).lookVector*str}
  841. deb:AddItem(bodyVelo,dur)
  842. end
  843.  
  844. HitData = {}
  845. function Touched(hit)
  846. if not Dmg then return end
  847. if hit.Parent:IsDescendantOf(Char) then return end
  848. local fHum,fTorso,fHead = GetHuman(hit.Parent)
  849. if fHum and fTorso and fHead then
  850. Damage(fHum,mran(Dmgv[1],Dmgv[2]))
  851. end
  852.  
  853. if ArmAnim == "Lightning Fist" then
  854. local BlastPos = (Hole.CFrame).p
  855. local at = BlastPos+v3(0,-5,0)
  856. ArmAnim = "Lightning Blast"
  857. local Prev = Knockback
  858. MeshEffect(workspace,cn(at),14,14,14,0.05,"New Yeller","Sphere",cn())
  859. MeshEffect(workspace,cn(at),9,14,9,0.05,"New Yeller",as.Blast,ca(0,mran(-5,5),0))
  860. for i=360/8,360,360/8 do
  861. MeshEffect(workspace,cn(at)*ca(0,i,0)*cn(0,2,3)*ca(-90,0,0),1.5,8,1.5,0.05,"New Yeller",as.Diamond,cn(0,1.5,0)*ca(1,0,0))
  862. if i==360/8 then
  863. local fHumans = AoEFind(BlastPos,10)
  864. AoEBreak(BlastPos,10,50,mran(35,50))
  865. if #fHumans > 0 then
  866. for i,v in pairs(fHumans) do
  867. local fHum,fTorso,fHead = v.Humanoid,v.Torso,v.Head
  868. Damage(fHum,mran(Dmgv[1],Dmgv[2])*2.5)
  869. Knockback(fTorso,BlastPos,35,0.25)
  870. end
  871. end
  872. end
  873. end
  874. end
  875. end
  876.  
  877. for i,v in pairs(Suit:GetChildren()) do
  878. if v:IsA("BasePart") and (v.Name=="Saw" or v.Name=="Chakram") then
  879. v.Touched:connect(Touched)
  880. end
  881. end
  882.  
  883. for i,v in pairs(Torso:children()) do
  884. if v:IsA("Sound") then
  885. v:Destroy()
  886. end
  887. end
  888. for i,v in pairs(Head:children()) do
  889. if v:IsA("Sound") then
  890. v:Destroy()
  891. end
  892. end
  893.  
  894.  
  895. function ReturnPose(AnimationSpeed)
  896. RePose()
  897. for i=1,AnimationSpeed do
  898. if not Walking then
  899. SetWeld(LAW,0,i,AnimationSpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  900. SetWeld(RAW,0,i,AnimationSpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  901. for lever = 1,2 do
  902. local x = lever == 1 and -1 or lever == 2 and 1
  903. SetWeld(Levers[lever][1],0,i,AnimationSpeed,Levers[lever][2],Levers[lever][3],v3(x,0.6,-1.5),v3(0,0,0),1)
  904. end
  905. end
  906. SetWeld(Root,0,i,AnimationSpeed,wRT,wRT2,PoseRT,PoseRT2,1)
  907. SetWeld(wStand,0,i,AnimationSpeed,wST,wST2,PoseST,PoseST2,1)
  908. SetWeld(wBall,0,i,AnimationSpeed,wBA,wBA2,PoseBA,PoseBA2,1)
  909. SetWeld(wLArm,0,i,AnimationSpeed,wLAR,wLAR2,PoseLAR,PoseLAR2,1)
  910. SetWeld(wLArm2,0,i,AnimationSpeed,wLARM,wLARM2,PoseLARM,PoseLARM2,1)
  911. SetWeld(wRArm,0,i,AnimationSpeed,wRAR,wRAR2,PoseRAR,PoseRAR2,1)
  912. SetWeld(wRArm2,0,i,AnimationSpeed,wRARM,wRARM2,PoseRARM,PoseRARM2,1)
  913. SetWeld(wLLeg,0,i,AnimationSpeed,wLLE,wLLE2,PoseLLE,PoseLLE2,1)
  914. SetWeld(wLLeg2,0,i,AnimationSpeed,wLLEG,wLLEG2,PoseLLEG,PoseLLEG2,1)
  915. SetWeld(wLLeg3,0,i,AnimationSpeed,wLLL,wLLL2,PoseLLL,PoseLLL2,1)
  916. SetWeld(wRLeg,0,i,AnimationSpeed,wRLE,wRLE2,PoseRLE,PoseRLE2,1)
  917. SetWeld(wRLeg2,0,i,AnimationSpeed,wRLEG,wRLEG2,PoseRLEG,PoseRLEG2,1)
  918. SetWeld(wRLeg3,0,i,AnimationSpeed,wRLL,wRLL2,PoseRLL,PoseRLL2,1)
  919. wait(0)
  920. end
  921. end
  922.  
  923. function RePose()
  924. local a,b=GetWeld(LAW)
  925. local c,d=GetWeld(RAW)
  926. local ee,ff=GetWeld(Root)
  927. wLA=a wLA2=b
  928. wRA=c wRA2=d
  929. wRT=ee wRT2=ff
  930. local e,f=GetWeld(wStand)
  931. local g,h=GetWeld(wBall)
  932. local i,j=GetWeld(wLArm)
  933. local k,l=GetWeld(wLArm2)
  934. local m,n=GetWeld(wRArm)
  935. local o,p=GetWeld(wRArm2)
  936. local q,r=GetWeld(wLLeg)
  937. local s,t=GetWeld(wLLeg2)
  938. local y,z=GetWeld(wLLeg3)
  939. local u,v=GetWeld(wRLeg)
  940. local w,x=GetWeld(wRLeg2)
  941. local aa,bb=GetWeld(wRLeg3)
  942. for lever = 1,2 do Levers[lever][2],Levers[lever][3]=GetWeld(Levers[lever][1]) end
  943. wST=e wST2=f
  944. wBA=g wBA2=h
  945. wLAR=i wLAR2=j
  946. wLARM=k wLARM2=l
  947. wRAR=m wRAR2=n
  948. wRARM=o wRARM2=p
  949. wLLE=q wLLE2=r
  950. wLLEG=s wLLEG2=t
  951. wLLL=y wLLL2=z
  952. wRLE=u wRLE2=v
  953. wRLEG=w wRLEG2=x
  954. wRLL=aa wRLL2=bb
  955. end
  956.  
  957.  
  958. Attacks = {}
  959. Attacks[1] = function()
  960. ArmAnim = "Slash"
  961. if TorsoAnim == "" then TorsoAnim = ArmAnim end
  962. RePose()
  963. for i=1,ASpeed do
  964. SetWeld(wLArm,0,i,ASpeed,wLAR,wLAR2,PoseLAR,v3(-35,0,-45),1)
  965. SetWeld(wLArm2,0,i,ASpeed,wLARM,wLARM2,PoseLARM,v3(0,-65,-65),1)
  966. wait(0)
  967. end
  968. Mult = 2
  969. Trail = true
  970. RePose()
  971. for i=1,ASpeed/1.6 do
  972. if TorsoAnim == ArmAnim then
  973. SetWeld(Root,0,i,ASpeed/1.6,wRT,wRT2,PoseRT,v3(0,-70,0),1)
  974. SetWeld(wStand,0,i,ASpeed/1.6,wST,wST2,PoseST,v3(0,-70,0),1)
  975. SetWeld(wBall,0,i,ASpeed/1.6,wBA,wBA2,PoseBA,v3(0,70,0),1)
  976. end
  977. SetWeld(wLArm,0,i,ASpeed/1.6,wLAR,wLAR2,PoseLAR,v3(-140,0,60),1)
  978. SetWeld(wLArm2,0,i,ASpeed/1.6,wLARM,wLARM2,PoseLARM,v3(0,-45,-25),1)
  979. wait(0)
  980. end
  981. Mult = 1
  982. Trail = false
  983. ReturnPose(ASpeed)
  984. ArmAnim = ""
  985. TorsoAnim = TorsoAnim~="" and "" or TorsoAnim
  986. end
  987. Attacks[2] = function()
  988. ArmAnim = "AoE Slash"
  989. if TorsoAnim == "" then TorsoAnim = ArmAnim end
  990. local Ang = MouseAngleY>25 and 25 or MouseAngleY<-35 and -35 or MouseAngleY
  991. RePose()
  992. for i=1,ASpeed do
  993. if TorsoAnim == ArmAnim then
  994. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,v3(0,-70,0),1)
  995. SetWeld(wStand,0,i,ASpeed,wST,wST2,PoseST,v3(0,-70,0),1)
  996. SetWeld(wBall,0,i,ASpeed,wBA,wBA2,PoseBA,v3(0,70,0),1)
  997. end
  998. SetWeld(wLArm,0,i,ASpeed,wLAR,wLAR2,PoseLAR,v3(-90,0,-Ang),1)
  999. SetWeld(wLArm2,0,i,ASpeed,wLARM,wLARM2,PoseLARM,v3(-70,90,0),1)
  1000. wait(0)
  1001. end
  1002. Mult = 2
  1003. Trail = true
  1004. RePose()
  1005. for i=1,ASpeed/1.6 do
  1006. if TorsoAnim == ArmAnim then
  1007. SetWeld(Root,0,i,ASpeed/1.6,wRT,wRT2,PoseRT,v3(0,100,0),1)
  1008. SetWeld(wStand,0,i,ASpeed/1.6,wST,wST2,PoseST,v3(0,100,0),1)
  1009. SetWeld(wBall,0,i,ASpeed/1.6,wBA,wBA2,PoseBA,v3(0,-100,0),1)
  1010. end
  1011. SetWeld(wLArm,0,i,ASpeed/1.6,wLAR,wLAR2,PoseLAR,v3(70,0,-Ang),1)
  1012. SetWeld(wLArm2,0,i,ASpeed/1.6,wLARM,wLARM2,PoseLARM,v3(20,90,0),1)
  1013. wait(0)
  1014. end
  1015. Mult = 1
  1016. Trail = false
  1017. ReturnPose(ASpeed)
  1018. ArmAnim = ""
  1019. TorsoAnim = TorsoAnim~="" and "" or TorsoAnim
  1020. end
  1021. Attacks[3] = function()
  1022. ArmAnim = "Lightning Fist Start"
  1023. TorsoAnim = ArmAnim
  1024. RePose()
  1025. for i=1,ASpeed*1.5 do
  1026. if TorsoAnim == ArmAnim then
  1027. SetWeld(Root,0,i,ASpeed*1.5,wRT,wRT2,PoseRT,v3(0,-70,0),1)
  1028. SetWeld(wStand,0,i,ASpeed*1.5,wST,wST2,PoseST,v3(0,-70,0),1)
  1029. SetWeld(wBall,0,i,ASpeed*1.5,wBA,wBA2,PoseBA,v3(0,70,0),1)
  1030. end
  1031. SetWeld(wRArm,0,i,ASpeed*1.5,wRAR,wRAR2,PoseRAR,v3(0,50,70),1)
  1032. SetWeld(wRArm2,0,i,ASpeed*1.5,wRARM,wRARM2,PoseRARM,v3(0,0,-140),1)
  1033. wait(0)
  1034. end
  1035. Trail2 = true
  1036.  
  1037. PlaySound(as.ElectricShock,0.85,1,Torso)
  1038. RePose()
  1039. for i=1,ASpeed do
  1040. if TorsoAnim == ArmAnim then
  1041. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,v3(0,80,0),1)
  1042. SetWeld(wStand,0,i,ASpeed,wST,wST2,PoseST,v3(0,80,0),1)
  1043. SetWeld(wBall,0,i,ASpeed,wBA,wBA2,PoseBA,v3(0,-80,0),1)
  1044. end
  1045. SetWeld(wRArm,0,i,ASpeed,wRAR,wRAR2,PoseRAR,v3(0,35,-70),1)
  1046. SetWeld(wRArm2,0,i,ASpeed,wRARM,wRARM2,PoseRARM,v3(0,0,0),1)
  1047. wait(0)
  1048. if i==ASpeed-1 then ArmAnim = "Lightning Fist" end
  1049. end
  1050. Trail2 = false
  1051. wait(0.5)
  1052. ReturnPose(ASpeed)
  1053. ArmAnim = ""
  1054. TorsoAnim = TorsoAnim~="" and "" or TorsoAnim
  1055. end
  1056. Attacks[4] = function()
  1057. ArmAnim = "Shoot"
  1058. TorsoAnim = ArmAnim
  1059. RePose()
  1060. for i=1,ASpeed*1.5 do
  1061. if TorsoAnim == ArmAnim then
  1062. SetWeld(Root,0,i,ASpeed*1.5,wRT,wRT2,PoseRT,v3(0,90,0),1)
  1063. SetWeld(wStand,0,i,ASpeed*1.5,wST,wST2,PoseST,v3(0,90,0),1)
  1064. SetWeld(wBall,0,i,ASpeed*1.5,wBA,wBA2,PoseBA,v3(0,-90,0),1)
  1065. end
  1066. SetWeld(wRArm,0,i,ASpeed*1.5,wRAR,wRAR2,PoseRAR,v3(0,0,MouseAngleY),1)
  1067. SetWeld(wRArm2,0,i,ASpeed*1.5,wRARM,wRARM2,PoseRARM,v3(0,0,0),1)
  1068. wait(0)
  1069. end
  1070. Trail2 = true
  1071.  
  1072. PlaySound(as.ElectricShock,0.85,1,Torso)
  1073. RePose()
  1074. for i=1,ASpeed do
  1075. if TorsoAnim == ArmAnim then
  1076. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,v3(0,80,0),1)
  1077. SetWeld(wStand,0,i,ASpeed,wST,wST2,PoseST,v3(0,80,0),1)
  1078. SetWeld(wBall,0,i,ASpeed,wBA,wBA2,PoseBA,v3(0,-80,0),1)
  1079. end
  1080. SetWeld(wRArm,0,i,ASpeed,wRAR,wRAR2,PoseRAR,v3(0,35,-70),1)
  1081. SetWeld(wRArm2,0,i,ASpeed,wRARM,wRARM2,PoseRARM,v3(0,0,0),1)
  1082. wait(0)
  1083. if i==ASpeed-1 then ArmAnim = "Lightning Fist" end
  1084. end
  1085. Trail2 = false
  1086. wait(0.5)
  1087. ReturnPose(ASpeed)
  1088. Gyro = false
  1089. ArmAnim = ""
  1090. TorsoAnim = TorsoAnim~="" and "" or TorsoAnim
  1091. end
  1092.  
  1093. BP = iNew{"BodyPosition",Stand,maxForce=v3(0,0,0)}
  1094.  
  1095. ArmAnim = ""
  1096. LegAnim = ""
  1097. TorsoAnim = ""
  1098. ASpeed = 12
  1099. SawSpeed = 5
  1100. Trail = false
  1101. Trail2 = false
  1102. State = "Idling"
  1103. GroundOffset = v3(0,6.75,0)
  1104. PoseLA=v3(-1.5,0.5,-0.5) PoseLA2=v3(110,0,14)
  1105. PoseRA=v3(1.5,0.5,-0.5) PoseRA2=v3(110,0,-14)
  1106. PoseRT=v3(0,0,0) PoseRT2=v3(0,0,0)
  1107. PoseST=v3(0,0,0) PoseST2=v3(0,0,0)
  1108. PoseBA=v3(0,-1.5,0) PoseBA2=v3(0,0,0)
  1109. PoseLAR=v3(0,0,0) PoseLAR2=v3(-35,0,45)
  1110. PoseLARM=v3(0,0.75,0) PoseLARM2=v3(-80,100,0)
  1111. PoseRAR=v3(0,0,0) PoseRAR2=v3(0,-35,-50)
  1112. PoseRARM=v3(0,0.75,0) PoseRARM2=v3(0,90,-65)
  1113. PoseLLE=v3(-1.5,-1.25,-0.25) PoseLLE2=v3(20,0,-15)
  1114. PoseLLEG=v3(0,-0.75,0) PoseLLEG2=v3(-40,0,15)
  1115. PoseLLL=v3(0,-0.5,0) PoseLLL2=v3(20,0,0)
  1116. PoseRLE=v3(1.5,-1.25,-0.25) PoseRLE2=v3(20,0,15)
  1117. PoseRLEG=v3(0,-0.75,0) PoseRLEG2=v3(-40,0,-15)
  1118. PoseRLL=v3(0,-0.5,0) PoseRLL2=v3(20,0,0)
  1119.  
  1120. Arms() Legs()
  1121. ReturnPose(ASpeed)
  1122. Arms(0) Legs(0)
  1123.  
  1124.  
  1125. button1 = false
  1126. keys = {}
  1127. Mouse.Button1Down:connect(function()
  1128. button1 = true
  1129. if ArmAnim == "" then
  1130. Attacks[1]()
  1131. end
  1132. end)
  1133.  
  1134. Mouse.Button1Up:connect(function()
  1135. button1 = false
  1136. end)
  1137.  
  1138. Mouse.KeyDown:connect(function(key)
  1139. keys[key]=true
  1140. if key == "q" then
  1141. if ArmAnim == "" then
  1142. Attacks[2]()
  1143. end
  1144. end
  1145. if key == "e" then
  1146. if ArmAnim == "" then
  1147. Attacks[3]()
  1148. end
  1149. end
  1150. if key == "r" then
  1151. if ArmAnim == "" then
  1152. Attacks[4]()
  1153. end
  1154. end
  1155. if key == " " then
  1156. local hit,at = Raycast(Torso.Position,Torso.Position - (Torso.CFrame*cn(0,3,0)).p,10,Char)
  1157. if not hit or not at then return end
  1158. if ArmAnim == "" and TorsoAnim == "" and LegAnim == "" then
  1159. ArmAnim = "Jump"
  1160. LegAnim = "JumpS"
  1161. local PrevOff = GroundOffset
  1162. GroundOffset = v3(0,6,0)
  1163. ReturnPose(1)
  1164. RePose()
  1165. for i=1,ASpeed do
  1166. SetWeld(wLLeg,0,i,ASpeed,wLLE,wLLE2,PoseLLE,v3(15,0,-20),1)
  1167. SetWeld(wLLeg2,0,i,ASpeed,wLLEG,wLLEG2,PoseLLEG,v3(-45,-35,20),1)
  1168. SetWeld(wLLeg3,0,i,ASpeed,wLLL,wLLL2,PoseLLL,v3(30,35,0),0)
  1169. SetWeld(wRLeg,0,i,ASpeed,wRLE,wRLE2,PoseRLE,v3(15,0,20),1)
  1170. SetWeld(wRLeg2,0,i,ASpeed,wRLEG,wRLEG2,PoseRLEG,v3(-45,35,-20),1)
  1171. SetWeld(wRLeg3,0,i,ASpeed,wRLL,wRLL2,PoseRLL,v3(30,-35,0),0)
  1172. wait(0)
  1173. end
  1174. LegAnim = "Jump"
  1175. GroundOffset = v3(0,18,0)
  1176. RePose()
  1177. for i=1,ASpeed/1.5 do
  1178. SetWeld(wLLeg,0,i,ASpeed/1.5,wLLE,wLLE2,PoseLLE,v3(25,0,-20),1)
  1179. SetWeld(wLLeg2,0,i,ASpeed/1.5,wLLEG,wLLEG2,PoseLLEG,v3(-10,-35,20),1)
  1180. SetWeld(wLLeg3,0,i,ASpeed,wLLL,wLLL2,PoseLLL,v3(15,35,0),0)
  1181. SetWeld(wRLeg,0,i,ASpeed/1.5,wRLE,wRLE2,PoseRLE,v3(25,0,20),1)
  1182. SetWeld(wRLeg2,0,i,ASpeed/1.5,wRLEG,wRLEG2,PoseRLEG,v3(-10,35,-20),1)
  1183. SetWeld(wRLeg3,0,i,ASpeed,wRLL,wRLL2,PoseRLL,v3(15,-35,0),0)
  1184. wait(0)
  1185. end
  1186. GroundOffset = PrevOff
  1187. ReturnPose(ASpeed)
  1188. ArmAnim = ArmAnim~="" and "" or ArmAnim
  1189. LegAnim = LegAnim~="" and "" or LegAnim
  1190. end
  1191. end
  1192. end)
  1193.  
  1194. Mouse.KeyUp:connect(function(key)
  1195. keys[key]=false
  1196. end)
  1197. Humanoid.Changed:connect(function(prop)
  1198. if prop == "Health" then
  1199. if PrevHealth-Humanoid.Health>0 then
  1200. for i,v in pairs(game:GetService("Players"):GetChildren()) do
  1201. if not v:IsA("Player") or not v.Character.Parent then return end
  1202. local fHum,fTorso,fHead = GetHuman(v.Character)
  1203. if not fHum or not fTorso then return end
  1204. if v.Name~=Player.Name then
  1205. local Dist = (v.Character.Torso.Position-Torso.Position).magnitude
  1206. if Dist<25 then
  1207. Damage(v.Character.Humanoid,math.ceil((PrevHealth-Humanoid.Health)*0.75))
  1208. Lightning(Hole.Position,fTorso.Position,mran(3,6),5,"New Yeller",0.3,mran2(0.5,0.9))
  1209. PlaySound(as.ElectricShock,1,1,Torso)
  1210. end
  1211. end
  1212. end
  1213. end
  1214. end
  1215. end)
  1216.  
  1217. Spawn(function()
  1218. while Suit.Parent do
  1219. for ii,vv in pairs(Saws) do
  1220. Spawn(function()
  1221. for i=0,180,360/(200/SawSpeed) do
  1222. vv[2].C0=cn(-1.25/2-0.5,0,0)*ca(0,i,0)*cn(0,0,-1.25/2)
  1223. wait(0)
  1224. end
  1225. for i=-1.25/2,1.25+0.3,(1.25/40)*SawSpeed do
  1226. vv[2].C0=cn(-0.5+i,0,1.25/2)
  1227. wait(0)
  1228. end
  1229. for i=180,360,360/(200/SawSpeed) do
  1230. vv[2].C0=cn(1.25/2+0.4,0,0)*ca(0,i,0)*cn(0,0,-1.25/2)
  1231. wait(0)
  1232. end
  1233. for i=1.25/2,-1.25-0.3,-(1.25/40)*SawSpeed do
  1234. vv[2].C0=cn(0.4+i,0,-1.25/2)
  1235. wait(0)
  1236. end
  1237. end)
  1238. wait(0.08)
  1239. end
  1240. wait(0)
  1241. end
  1242. end)
  1243.  
  1244. Count = 0
  1245. game:GetService("RunService").RenderStepped:connect(function()
  1246. if Suit.Parent then
  1247. Count = Count+1
  1248. local hit,at = Raycast(Stand.Position,Stand.Position - (Stand.CFrame*cn(0,3,0)).p,10,Char)
  1249. if hit and at then
  1250. BP.position = at+GroundOffset
  1251. BP.maxForce = v3(0,1/0,0)
  1252. else
  1253. BP.maxForce = v3()
  1254. end
  1255. local CurrentPos = ArmSawP.CFrame*cn(0,0,-0.5)
  1256. if Trail then
  1257. if LastPos and (ArmSawP.Position-LastPos.p).magnitude > 0.1 then
  1258. local h = 4.5
  1259. local ft = 0.15
  1260. local a,b = Triangle{(LastPos*cn(0,h/2,0)).p,(LastPos*cn(0,-h/2,0)).p,(CurrentPos*cn(0,h/2,0)).p}
  1261. if a then deb:AddItem(a,ft) end
  1262. if b then deb:AddItem(b,ft) end
  1263. local a,b = Triangle{(CurrentPos*cn(0,h/2,0)).p,(CurrentPos*cn(0,-h/2,0)).p,(LastPos*cn(0,-h/2,0)).p}
  1264. if a then deb:AddItem(a,ft) end
  1265. if b then deb:AddItem(b,ft) end
  1266. LastPos = CurrentPos
  1267. elseif not LastPos then
  1268. LastPos = CurrentPos
  1269. end
  1270. elseif not Trail then
  1271. LastPos = nil
  1272. end
  1273. if Trail2 then
  1274. if Count%1==0 then
  1275. local sc = 5
  1276. local To = Hole.Position+v3(mran(-sc,sc),mran(-sc,sc),mran(-sc,sc))
  1277. Lightning(Hole.Position,To,mran(3,6),mran(1,4),"New Yeller",0.2,mran2(0.5,0.9))
  1278. end
  1279. end
  1280. wChakram.C0=cn(0,-1.4,0)*ca(90,0,Count*SawSpeed)
  1281. MouseAngleX = math.floor(cn(Head.Position,Mouse.Hit.p).lookVector.x*90)
  1282. MouseAngleY = math.floor(cn(Head.Position,Mouse.Hit.p).lookVector.y*90)
  1283. SetWeld(Neck,0,1,1,v3(),v3(),v3(0,1.5,-0.1),v3(MouseAngleY<-20 and -20 or MouseAngleY>45 and 45 or MouseAngleY,0,0),1)
  1284. PrevHealth = Humanoid.Health
  1285. Walking = v3(Torso.Velocity.x,0,Torso.Velocity.z).magnitude>1 and true or false
  1286. end
  1287. end)
  1288. while wait(0) do
  1289. if not Humanoid.PlatformStand and not Humanoid.Sit then
  1290. local AnimSpeed = ASpeed/1.5
  1291. if Walking then
  1292. State = "Walking"
  1293. RePose()
  1294. Humanoid.WalkSpeed = 12
  1295. for i=1,AnimSpeed do
  1296. if TorsoAnim == "" then
  1297. SetWeld(Root,0,i,AnimSpeed,wRT,wRT2,PoseRT,v3(0,-15,0),0)
  1298. SetWeld(wStand,0,i,AnimSpeed,wST,wST2,PoseST,v3(0,-15,0),0)
  1299. SetWeld(wBall,0,i,AnimSpeed,wBA,wBA2,PoseBA,v3(0,15,0),0)
  1300. end
  1301. if ArmAnim == "" then
  1302. SetWeld(wLArm,0,i,AnimSpeed,wLAR,wLAR2,PoseLAR,v3(-90,0,20),1)
  1303. SetWeld(wLArm2,0,i,AnimSpeed,wLARM,wLARM2,PoseLARM,v3(-45,90,0),1)
  1304. end
  1305. if LegAnim == "" then
  1306. SetWeld(wLLeg,0,i,AnimSpeed,wLLE,wLLE2,PoseLLE,v3(80,0,-20),0)
  1307. SetWeld(wLLeg2,0,i,AnimSpeed,wLLEG,wLLEG2,PoseLLEG,v3(-80,0,20),0)
  1308. SetWeld(wLLeg3,0,i,AnimSpeed,wLLL,wLLL2,PoseLLL,v3(0,-15,0),0)
  1309. SetWeld(wRLeg,0,i,AnimSpeed,wRLE,wRLE2,PoseRLE,v3(-35,0,20),0)
  1310. SetWeld(wRLeg2,0,i,AnimSpeed,wRLEG,wRLEG2,PoseRLEG,v3(-0,0,-20),0)
  1311. SetWeld(wRLeg3,0,i,AnimSpeed,wRLL,wRLL2,PoseRLL,v3(35,0,0),0)
  1312. end
  1313. SetWeld(RAW,0,i,AnimSpeed,wRA,wRA2,v3(1.5,0.5,0),PoseRA2,0)
  1314. SetWeld(LAW,0,i,AnimSpeed,wLA,wLA2,v3(-1.5,0.5,-1),PoseLA2,0)
  1315. for lever = 1,2 do
  1316. local x = lever == 1 and -1 or lever == 2 and 1
  1317. SetWeld(Levers[lever][1],0,i,AnimSpeed,Levers[lever][2],Levers[lever][3],v3(x,0.6,-1.5),v3(25*x,0,0),0)
  1318. end
  1319. wait(0)
  1320.  
  1321. if not Walking then
  1322. break
  1323. end
  1324. end
  1325. RePose()
  1326. Humanoid.WalkSpeed = 22
  1327. for i=1,AnimSpeed/2.5 do
  1328. if LegAnim == "" then
  1329. SetWeld(wLLeg,0,i,AnimSpeed/2.5,wLLE,wLLE2,PoseLLE,v3(35,0,-20),0)
  1330. SetWeld(wLLeg2,0,i,AnimSpeed/2.5,wLLEG,wLLEG2,PoseLLEG,v3(-35,0,20),0)
  1331. SetWeld(wLLeg3,0,i,AnimSpeed/2.5,wLLL,wLLL2,PoseLLL,v3(0,-15,0),0)
  1332. SetWeld(wRLeg,0,i,AnimSpeed/2.5,wRLE,wRLE2,PoseRLE,v3(-65,0,20),0)
  1333. SetWeld(wRLeg2,0,i,AnimSpeed/2.5,wRLEG,wRLEG2,PoseRLEG,v3(-45,0,-20),0)
  1334. SetWeld(wRLeg3,0,i,AnimSpeed/2.5,wRLL,wRLL2,PoseRLL,v3(0,15,0),0)
  1335. end
  1336. SetWeld(RAW,0,i,AnimSpeed/2.5,wRA,wRA2,v3(1.5,0.5,0),PoseRA2,0)
  1337. SetWeld(LAW,0,i,AnimSpeed/2.5,wLA,wLA2,v3(-1.5,0.5,-1),PoseLA2,0)
  1338. for lever = 1,2 do
  1339. local x = lever == 1 and -1 or lever == 2 and 1
  1340. SetWeld(Levers[lever][1],0,i,AnimSpeed/2.5,Levers[lever][2],Levers[lever][3],v3(x,0.6,-1.5),v3(25*x,0,0),0)
  1341. end
  1342. wait(0)
  1343.  
  1344. if not Walking then
  1345. break
  1346. end
  1347. end
  1348. RePose()
  1349. Humanoid.WalkSpeed = 12
  1350. for i=1,AnimSpeed do
  1351. if TorsoAnim == "" then
  1352. SetWeld(Root,0,i,AnimSpeed,wRT,wRT2,PoseRT,v3(0,15,0),0)
  1353. SetWeld(wStand,0,i,AnimSpeed,wST,wST2,PoseST,v3(0,15,0),0)
  1354. SetWeld(wBall,0,i,AnimSpeed,wBA,wBA2,PoseBA,v3(0,-15,0),0)
  1355. end
  1356. if LegAnim == "" then
  1357. SetWeld(wRLeg,0,i,AnimSpeed,wRLE,wRLE2,PoseRLE,v3(80,0,20),0)
  1358. SetWeld(wRLeg2,0,i,AnimSpeed,wRLEG,wRLEG2,PoseRLEG,v3(-80,0,-20),0)
  1359. SetWeld(wRLeg3,0,i,AnimSpeed,wRLL,wRLL2,PoseRLL,v3(0,15,0),0)
  1360. SetWeld(wLLeg,0,i,AnimSpeed,wLLE,wLLE2,PoseLLE,v3(-35,0,-20),0)
  1361. SetWeld(wLLeg2,0,i,AnimSpeed,wLLEG,wLLEG2,PoseLLEG,v3(-0,0,20),0)
  1362. SetWeld(wLLeg3,0,i,AnimSpeed,wLLL,wLLL2,PoseLLL,v3(35,-0,0),0)
  1363.  
  1364. SetWeld(RAW,0,i,AnimSpeed,wRA,wRA2,v3(1.5,0.5,-1),PoseRA2,0)
  1365. SetWeld(LAW,0,i,AnimSpeed,wLA,wLA2,v3(-1.5,0.5,0),PoseLA2,0)
  1366. for lever = 1,2 do
  1367. local x = lever == 1 and -1 or lever == 2 and 1
  1368. SetWeld(Levers[lever][1],0,i,AnimSpeed,Levers[lever][2],Levers[lever][3],v3(x,0.6,-1.5),v3(-25*x,0,0),0)
  1369. end
  1370. end
  1371. wait(0)
  1372.  
  1373. if not Walking then
  1374. break
  1375. end
  1376. end
  1377. RePose()
  1378. Humanoid.WalkSpeed = 22
  1379. for i=1,AnimSpeed/2.5 do
  1380. if LegAnim == "" then
  1381. SetWeld(wRLeg,0,i,AnimSpeed/2.5,wRLE,wRLE2,PoseRLE,v3(35,0,20),0)
  1382. SetWeld(wRLeg2,0,i,AnimSpeed/2.5,wRLEG,wRLEG2,PoseRLEG,v3(-35,0,-20),0)
  1383. SetWeld(wRLeg3,0,i,AnimSpeed/2.5,wRLL,wRLL2,PoseRLL,v3(0,15,0),0)
  1384. SetWeld(wLLeg,0,i,AnimSpeed/2.5,wLLE,wLLE2,PoseLLE,v3(-65,0,-20),0)
  1385. SetWeld(wLLeg2,0,i,AnimSpeed/2.5,wLLEG,wLLEG2,PoseLLEG,v3(-45,0,20),0)
  1386. SetWeld(wLLeg3,0,i,AnimSpeed/2.5,wLLL,wLLL2,PoseLLL,v3(0,-15,0),0)
  1387.  
  1388. SetWeld(RAW,0,i,AnimSpeed/2.5,wRA,wRA2,v3(1.5,0.5,-1),PoseRA2,0)
  1389. SetWeld(LAW,0,i,AnimSpeed/2.5,wLA,wLA2,v3(-1.5,0.5,0),PoseLA2,0)
  1390. for lever = 1,2 do
  1391. local x = lever == 1 and -1 or lever == 2 and 1
  1392. SetWeld(Levers[lever][1],0,i,AnimSpeed/2.5,Levers[lever][2],Levers[lever][3],v3(x,0.6,-1.5),v3(-25*x,0,0),0)
  1393. end
  1394. end
  1395. wait(0)
  1396.  
  1397. if not Walking then
  1398. break
  1399. end
  1400. end
  1401. elseif Torso.Velocity.magnitude < 1 then
  1402. if State == "Walking" then
  1403. State = "Idling"
  1404. RePose()
  1405. for i=1,AnimSpeed do
  1406. if TorsoAnim == "" then
  1407. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,PoseRT2,0)
  1408. SetWeld(wStand,0,i,ASpeed,wST,wST2,PoseST,PoseST2,0)
  1409. SetWeld(wBall,0,i,AnimSpeed,wBA,wBA2,PoseBA,PoseBA2,0)
  1410. end
  1411. if LegAnim == "" then
  1412. SetWeld(wLLeg,0,i,AnimSpeed,wLLE,wLLE2,PoseLLE,PoseLLE2,0)
  1413. SetWeld(wLLeg2,0,i,AnimSpeed,wLLEG,wLLEG2,PoseLLEG,PoseLLEG2,0)
  1414. SetWeld(wLLeg3,0,i,AnimSpeed,wLLL,wLLL2,PoseLLL,PoseLLL2,0)
  1415. SetWeld(wRLeg,0,i,AnimSpeed,wRLE,wRLE2,PoseRLE,PoseRLE2,0)
  1416. SetWeld(wRLeg2,0,i,AnimSpeed,wRLEG,wRLEG2,PoseRLEG,PoseRLEG2,0)
  1417. SetWeld(wRLeg3,0,i,AnimSpeed,wRLL,wRLL2,PoseRLL,PoseRLL2,0)
  1418. end
  1419. wait(0)
  1420.  
  1421. if Walking then
  1422. break
  1423. end
  1424. end
  1425. end
  1426. end
  1427. end
  1428. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement