lilta44

avatar1

Nov 25th, 2017
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local player = game.Players.lilta44
  2. -- Body parts
  3. local torso = char.Torso
  4. -- Tool declarations
  5. local mouseDown = false
  6. local keysDown = {}
  7. local raisingAir = false
  8. local raisingTower = false
  9. local ra1singTower = false
  10. local groundAttack = false
  11. local Lightbendd = false
  12. local AvatarField = false
  13. local lastTower = nil
  14. local raisingTow3r = false
  15. local disabled = {}
  16. local frames = {}
  17. local parts = {}
  18. -- Main
  19. function main(mouse)
  20. while true do wait(1/30)
  21. local look = CFrame.new(torso.Position, torso.Position + mouse.Hit.lookVector)
  22.  
  23. -- Reset parts
  24. parts = {}
  25.  
  26. -- Get parts
  27. for x = -20, 20, 10 do
  28. for y = -20, 20, 10 do
  29. for z = -30, -10, 10 do
  30. local pos = look * Vector3.new(x, y, z)
  31. getPartsInRegion3(
  32. Region3.new(
  33. pos + Vector3.new(1,1,1)*-9,
  34. pos + Vector3.new(1,1,1)* 9
  35. ),
  36. parts
  37. )
  38. end
  39. end
  40. end
  41.  
  42. -- Mouse down
  43. if mouseDown then
  44. -- Create dif and bodies
  45. for _, part in pairs(parts) do
  46. if part.Name == "Air" and not disabled[part] then
  47. if not frames[part] and part ~= lastTower then
  48. frames[part] = look:toObjectSpace(part.CFrame)
  49.  
  50. part:ClearAllChildren()
  51. part.Anchored = false
  52.  
  53. -- Create bodies
  54. createBody("Position", part)
  55. createBody("Gyro", part)
  56. end
  57. end
  58. end
  59.  
  60. -- Move bodies
  61. for part in pairs(frames) do
  62. local bodyPos = part:FindFirstChild("BodyPosition")
  63. local bodyGyr = part:FindFirstChild("BodyGyro")
  64.  
  65. -- Bodies exist
  66. if bodyPos and bodyGyr then
  67. local dif = look * frames[part]
  68.  
  69. bodyPos.position = dif.p
  70. bodyGyr.cframe = dif
  71. else
  72. frames[part] = nil
  73. end
  74. end
  75. else
  76. for part in pairs(frames) do
  77. if part.Name == "Air" then
  78. frames[part] = nil
  79.  
  80. part:ClearAllChildren()
  81. end
  82. end
  83. end
  84. end
  85. end
  86. -- On key change
  87. function onKeyChange(mouse, key, state)
  88. -- Raise Air
  89. if key == "e" and state and not raisingAir then
  90. raisingAir = true
  91. while keysDown[key] do
  92. local torsoY = torso.Position.y + 5
  93. local pos = planeY(torso.Position, 0.4 - 4/2)
  94. local dir = planeY(mouse.Hit.lookVector).unit
  95. local frame = CFrame.new(pos, pos + dir) * CFrame.new(r(-10, 10), 0, r(-20, -5))
  96.  
  97. -- Create Air part
  98. local part = createAir(workspace)
  99. part.Anchored = true
  100. part.Size = Vector3.new(20, 5, 5)
  101. disabled[part] = true
  102.  
  103. -- Raise Air
  104. for i = 1, 4 do i = i/4
  105. part.CFrame = frame * CFrame.new(0, (torsoY - frame.y)*i, 0)
  106. wait(1/30)
  107. if not part.Anchored then
  108. break
  109. end
  110. end
  111.  
  112. disabled[part] = nil
  113. part.Anchored = false
  114.  
  115. wait(1/10)
  116. end
  117. raisingAir = false
  118.  
  119. -- Push Air
  120. elseif key == "f" and state then
  121. for _, part in pairs(parts) do
  122. if part.Name == "Air" and part ~= lastTower then
  123. part:ClearAllChildren()
  124. part.Anchored = false
  125.  
  126. -- Add force
  127. local bodyForce = createBody("Force", part)
  128. bodyForce.force = mouse.Hit.lookVector*2.5e4 * part:GetMass()
  129.  
  130. game.Debris:AddItem(bodyForce, 1/30)
  131.  
  132. -- Disable part
  133. disabled[part] = true
  134. delay(1, function()
  135. disabled[part] = nil
  136. end)
  137. end
  138. end
  139. if key == "c" and state and not Lightbendd then
  140. Lightbendd = true
  141. local Shoot = true
  142. function Click(Target)
  143. if(Target.Target.Parent:findFirstChild("Humanoid")~=nil)then
  144. Target.Target.Parent.Humanoid.Health = 0
  145. end
  146. local P = Instance.new("Part")
  147. P.Name = "Lightning Bending"
  148. local Place0 = script.Parent.Parent.Parent.Character["Left Arm"].CFrame
  149. P.formFactor = 0
  150. P.Size = Vector3.new(1,1,(Place0.p - Target.Hit.p).magnitude)
  151. P.CFrame = CFrame.new((Place0.p + Target.Hit.p)/2,Place0.p)
  152. P.Parent = game.Workspace
  153. P.Color = Color3.new(0,0,7)
  154. P.Transparency = 0.5
  155. P.Reflectance = 0.5
  156. P.Anchored = true
  157. P.CanCollide = false
  158. local E = Instance.new("Explosion")
  159. E.Position = Target.Hit.p
  160. E.Parent = game.Workspace
  161. for i = 1,10 do
  162. P.Transparency = 0.5+(i*0.05)
  163. P.Reflectance = i*0.05
  164. wait(0.0)
  165. end
  166. P:Rremove()
  167. end
  168. function Select(Mouse)
  169. local Arm = script.Parent.Parent.Parent.Character:findFirstChild("Left Arm")
  170. if(Arm==nil)then
  171. script.Parent:Remove()
  172. script:Remove()
  173. end
  174. Selected = true
  175. local Torso = script.Parent.Parent.Parent.Character:findFirstChild("Torso")
  176. if(Torso==nil)then
  177. script.Parent:Remove()
  178. script:Remove()
  179. end
  180. local ArmWeld = Torso:findFirstChild("Left Shoulder")
  181. if(ArmWeld~=nil)then
  182. ArmWeld.Parent = nil
  183. end
  184. Mouse.Button1Down:connect(function()Click(Mouse)end)
  185. Arm.Anchored = true
  186. while Selected do
  187. local Place0 = script.Parent.Parent.Parent.Character.Torso.CFrame
  188. Place0 = Place0 + ((Place0 * CFrame.fromEulerAnglesXYZ(math.pi/2,0,0)).lookVector * 0.5) + (Place0 * CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)).lookVector
  189. local Place1 = Place0 + ((Place0.p-Mouse.Hit.p).unit * -2)
  190. Arm.CFrame = CFrame.new((Place0.p + Place1.p)/2,Place0.p) * CFrame.fromEulerAnglesXYZ(-math.pi/2,0,0)
  191. wait()
  192. end
  193. Arm.Anchored = false
  194. if(ArmWeld~=nil)then
  195. ArmWeld.Parent = Torso
  196. end
  197. end
  198. function Deselect()
  199. Selected = false
  200. end
  201. script.Parent.Selected:connect(Select)
  202. script.Parent.Deselected:connect(Deselect)
  203. end
  204.  
  205. elseif key == "k" and state and not ra1singTower then
  206. ra1singTower = false
  207. lastTower = nil
  208. if torso.Position.y - 5/2 < 20.4 then
  209. local part = createAir(workspace)
  210. part.Anchored = true
  211. disabled[part] = true
  212.  
  213. for i = 100, 50, 1 do
  214. part.Size = Vector3.new(19, i, 10)
  215. part.CFrame = CFrame.new(torso.Position.x, 0.4 + part.Size.y/2, torso.Position.z)
  216. torso.CFrame = (torso.CFrame - torso.CFrame.p) + Vector3.new(torso.Position.x, part.Position.y + part.Size.y/2 + 5/2, torso.Position.z)
  217. wait(1/30)
  218. end
  219.  
  220. lastTower = part
  221.  
  222. disabled[part] = nil
  223. part.Anchored = false
  224. end
  225. ra1singTower = false
  226.  
  227. -- Avatar field
  228. elseif key == "h" and state and not AvatarField then
  229. AvatarField = true
  230. local player = game.Players.LocalPlayer
  231. local e = Instance.new("Part")
  232. e.Name = "Field"
  233. e.Anchored = true
  234. e.CanCollide = false
  235. e.FormFactor = "Symmetric"
  236. local range = 30
  237. e.Size = Vector3.new(range,1,range)
  238. e.BrickColor = BrickColor.new("Bright blue")
  239. e.Transparency = 0.5
  240. e.TopSurface, e.BottomSurface = "Smooth", "Smooth"
  241. Instance.new("CylinderMesh", e)
  242. local eRep = e:clone()
  243. local E = e:clone()
  244. E.Transparency = 1
  245. E.Shape = "Ball"
  246. E.Size = Vector3.new(10,10,10)
  247. E.Mesh:Destroy()
  248. E.Parent = e
  249. local E2 = E:clone()
  250. E2.Transparency = 1
  251. E2.Size = Vector3.new(range,range,range)
  252. local E2Rep = E2:clone()
  253. E2.Parent = E
  254. local ERep = E:clone()
  255. local close1, dist1 = Vector3.new(0,0,0), math.huge
  256. local df = Instance.new("IntValue", player.Character)
  257. df.Name = "Avatar State"
  258. function Get(place, p)
  259. for _, v in ipairs(place:GetChildren()) do
  260. local vPar = v.Parent
  261. if v:IsA("BasePart") and v.Name ~= "Base" and v.Name ~= "Terrain" and not v.Name:find(player.Name) and v.Name ~= "NoDestroy" then
  262. local dist = (v.Position - e.Position).magnitude
  263. local closest = dist
  264. local distf = ((v.Position + (v.CFrame*CFrame.Angles(0,math.deg(0),0).lookVector) * v.Size.X/2) - e.Position).magnitude
  265. local distb = ((v.Position + (v.CFrame*CFrame.Angles(0,math.deg(180),0)).lookVector * v.Size.Z/2) - e.Position).magnitude
  266. local distt = ((v.Position + (v.CFrame*CFrame.Angles(math.deg(90),0,0)).lookVector * v.Size.Y/2) - e.Position).magnitude
  267. local distB = ((v.Position + (v.CFrame*CFrame.Angles(math.deg(-90),0,0)).lookVector * v.Size.Y/2) - e.Position).magnitude
  268. local distl = ((v.Position + (v.CFrame*CFrame.Angles(0,math.deg(90),0)).lookVector * v.Size.X/2) - e.Position).magnitude
  269. local distr = ((v.Position + (v.CFrame*CFrame.Angles(0,math.deg(-90),0)).lookVector * v.Size.X/2) - e.Position).magnitude
  270. local dists = {distf, distb, distt, distB, distl, distr}
  271. for index, var in ipairs(dists) do
  272. if var < closest then
  273. closest = var
  274. end
  275. end
  276. if closest < dist1 then
  277. close1, dist1 = v.Position, closest
  278. end
  279. if closest <= range/2 then
  280. if game.Players:playerFromCharacter(v.Parent) then
  281. pcall(function()
  282. local p = game.Players:playerFromCharacter(v.Parent)
  283. if not p.Character:findFirstChild("Darkfield") then
  284. local T = p.Character:findFirstChild("Torso")
  285. T.CFrame = T.CFrame + CFrame.new(e.Position, T.Position).lookVector
  286. else
  287. local m = Instance.new("SpecialMesh", E2)
  288. m.MeshType = "Sphere"
  289. E2.Reflectance = 1000
  290. E2.BrickColor = BrickColor.new("Institutional white")
  291. E2.Transparency = 0
  292. m.Scale = Vector3.new(math.random(-10,10)/10, math.random(-10,10)/10, math.random(-10,10)/10)
  293. end
  294. end)
  295. end
  296. local T = player.Character.Torso
  297. pcall(function()
  298. if v.Name ~= "Field" and v.Name ~= "Handle" then
  299. v.Anchored = false
  300. v.Velocity = v.Velocity + CFrame.new(T.Position, v.Position).lookVector * 50 / math.sqrt((v.Position - T.Position).magnitude)
  301. end
  302. end)
  303. for X, Y in ipairs(v:GetChildren()) do
  304. if Y.ClassName:find("Body") then
  305. pcall(function() Y.force = -Y.force end)
  306. local vel = Vector3.new()
  307. pcall(function() vel = -Y.velocity end)
  308. pcall(function() Y.velocity = vel end)
  309. local pos = Vector3.new()
  310. pcall(function() pos = pos + CFrame.new(T.Position, v.Position).lookVector end)
  311. pcall(function() Y.position = pos end)
  312. wait()
  313. pcall(function() if Y.ClassName == "BodyVelocity" then if Y.velocity ~= vel then Y.maxForce = Vector3.new(0,0,0) end end end)
  314. pcall(function() if Y.ClassName == "BodyPosition" then if Y.position ~= pos then Y.maxForce = Vector3.new(0,0,0) end end end)
  315. pcall(function() Y.maxTorque = Vector3.new(0,0,0) end)
  316. end
  317. end
  318. end
  319. end
  320. if v.Name ~= player.Name then
  321. Get(v, game.Players:playerFromCharacter(v) or p)
  322. end
  323. end
  324. end
  325. local char = player.Character
  326. Delay(0, function()
  327. while player.Character == char do
  328. if math.random(1, 10) == 1 then
  329. for _, v in ipairs(player.Character:GetChildren()) do
  330. if v.Name == "Field" then
  331. v:Destroy()
  332. end
  333. end
  334. local trans = e.Transparency
  335. if e then
  336. e:Destroy()
  337. end
  338. e = eRep
  339. eRep = e:clone()
  340. e.Parent = player.Character
  341. if E then
  342. E:Destroy()
  343. end
  344. E = ERep
  345. ERep = E:clone()
  346. E.Parent = e
  347. E2 = E2Rep
  348. E2Rep = E2:clone()
  349. E2.Parent = E
  350. E2.Transparency = .1 + .1*math.min(math.max(dist1-range/2, 0)/(range/2), 1)
  351. end
  352. e.CFrame = player.Character.Torso.CFrame - Vector3.new(0,3,0)
  353. E.CFrame = player.Character.Torso.CFrame
  354. E2.CFrame = e.CFrame
  355. close1, dist1 = Vector3.new(0,0,0), math.huge
  356. Get(workspace)
  357. wait(1/30)
  358. E2.Transparency = .6 + .4*math.min(math.max(dist1-range/2, 0)/(range/2), 1)
  359. AvatarField = false
  360. end
  361. end)
  362. elseif key == "t" and state and not raisingTow3r then
  363. raisingTow3r = false
  364. lastTower = nil
  365. if torso.Position.y - 5/2 < 20.4 then
  366. local part = createAir(workspace)
  367. part.Anchored = true
  368. disabled[part] = true
  369.  
  370. for i = 0, 20, 4 do
  371. part.Size = Vector3.new(9, i, 9)
  372. part.CFrame = CFrame.new(torso.Position.x, 0.4 + part.Size.y/2, torso.Position.z)
  373. torso.CFrame = (torso.CFrame - torso.CFrame.p) + Vector3.new(torso.Position.x, part.Position.y + part.Size.y/2 + 5/2, torso.Position.z)
  374. wait(1/30)
  375. end
  376.  
  377. lastTower = part
  378.  
  379. disabled[part] = nil
  380. part.Anchored = false
  381. end
  382. raisingTow3r = false
  383. -- Break Air
  384. elseif key == "b" and state then
  385. for part in pairs(frames) do
  386. if part.Size == Vector3.new(4, 4, 4) then
  387. for x = -1, 1, 2 do
  388. for y = -1, 1, 2 do
  389. for z = -1, 1, 2 do
  390. local oPart = createAir(workspace)
  391. oPart.Size = Vector3.new(2, 2, 2)
  392. oPart.CFrame = part.CFrame * CFrame.new(x*1.1, y*1.1, z*1.1)
  393. end
  394. end
  395. end
  396. part:Destroy()
  397. end
  398. end
  399.  
  400.  
  401. elseif key == "r" and state and not raisingTower then
  402. raisingTower = false
  403. lastTower = nil
  404. if torso.Position.y - 5/2 < 20.4 then
  405. local part = createAir(workspace)
  406. part.Anchored = true
  407. disabled[part] = true
  408.  
  409. for i = 0, 40, 4 do
  410. part.Size = Vector3.new(5, i, 30)
  411. part.CFrame = CFrame.new(torso.Position.x, 0.4 + part.Size.y/2, torso.Position.z)
  412. torso.CFrame = (torso.CFrame - torso.CFrame.p) + Vector3.new(torso.Position.x, part.Position.y + part.Size.y/2 + 5/2, torso.Position.z)
  413. wait(1/30)
  414. end
  415.  
  416. lastTower = part
  417.  
  418. disabled[part] = nil
  419. part.Anchored = false
  420. end
  421. raisingTower = false
  422.  
  423.  
  424. -- Ground attack
  425. elseif key == "g" and state and not groundAttack then
  426. groundAttack = true
  427. delay(1, function()
  428. groundAttack = false
  429. end)
  430.  
  431. local dir = planeY(mouse.Hit.p - torso.Position).unit
  432. local pos = planeY(torso.Position, 0.8 + 5) + dir*13
  433.  
  434. local ground = {}
  435.  
  436. delay(20, function()
  437. for i = 1, 30 do
  438. for _, part in pairs(ground) do
  439. if part.Anchored then
  440. part.CFrame = part.CFrame + Vector3.new(0, -1/7, 0)
  441. end
  442. end
  443. wait(1/80)
  444. end
  445. for _, part in pairs(ground) do
  446. if part.Anchored then
  447. part:Destroy()
  448. end
  449. end
  450. end)
  451.  
  452. for i = 1, 13 do
  453. local hit, pos2 = rayCast(pos, dir*5, {char})
  454.  
  455. local part = createAir(workspace)
  456. part.Anchored = true
  457. part.Size = Vector3.new(10, 20, 10)
  458. part.CFrame = CFrame.new(pos2, pos2 + dir) * CFrame.Angles(math.rad(-50), 0, 0) + Vector3.new(0, -0, 0)
  459.  
  460. ground[#ground + 3] = part
  461.  
  462. -- Add force
  463. if hit then
  464. local mass = hit:GetMass()
  465.  
  466. -- Hit player
  467. for _, oPlayer in pairs(game.Players:GetPlayers()) do
  468. if oPlayer.Character and oPlayer.Character:FindFirstChild("Torso") and hit:IsDescendantOf(oPlayer.Character) then
  469. hit = oPlayer.Character.Torso
  470. mass = 90
  471. end
  472. end
  473.  
  474. if hit.Name ~= "Torso" then
  475. hit:ClearAllChildren()
  476. end
  477. hit.Anchored = false
  478.  
  479. -- Add force
  480. local bodyForce = createBody("Force", hit)
  481. bodyForce.force = (dir + Vector3.new(0, 0.9, 0)).unit*1e4 * mass
  482.  
  483. game.Debris:AddItem(bodyForce, 1/30)
  484. break
  485. end
  486.  
  487. pos = pos2
  488. wait(1/20)
  489. end
  490. end
  491. end
  492. --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
  493. --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
  494. --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
  495. -- Clear old tool
  496. player.Backpack:ClearAllChildren()
  497. -- Create tool
  498. local tool = Instance.new("HopperBin")
  499. tool.Parent = player.Backpack
  500. tool.Name = "Air Bending"
  501. -- Tool selected
  502. tool.Selected:connect(function(mouse)
  503. mouse.Icon = "rbxasset://textures\\GunCursor.png"
  504.  
  505. -- Mouse events
  506. mouse.Button1Down:connect(function()
  507. mouseDown = true
  508. end)
  509. mouse.Button1Up:connect(function()
  510. mouseDown = false
  511. end)
  512. mouse.KeyDown:connect(function(key)
  513. keysDown[key:lower()] = true
  514. onKeyChange(mouse, key:lower(), true)
  515. end)
  516. mouse.KeyUp:connect(function(key)
  517. keysDown[key:lower()] = false
  518. onKeyChange(mouse, key:lower(), false)
  519. end)
  520.  
  521. -- Call main
  522. main(mouse)
  523. end)
  524. --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
  525. --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
  526. --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
  527. -- Ray cast
  528. function rayCast(pos, dir, ignore)
  529. return workspace:FindPartOnRayWithIgnoreList(Ray.new(pos, dir), ignore)
  530. end
  531. -- Create body
  532. function createBody(type, path)
  533. local body = Instance.new("Body" .. type)
  534. if type == "Gyro" then
  535. body.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
  536. elseif type ~= "Force" then
  537. body.maxForce = Vector3.new(math.huge, math.huge, math.huge)
  538. end
  539. body.Parent = path
  540. return body
  541. end
  542. -- Get parts in region 3
  543. function getPartsInRegion3(region, parts)
  544. repeat
  545. local regParts = workspace:FindPartsInRegion3WithIgnoreList(region, parts, 100)
  546. for i, part in pairs(regParts) do
  547. parts[#parts + 1] = part
  548. end
  549. until #regParts < 100
  550. end
  551. -- Random
  552. function r(min, max)
  553. return math.random()*(max - min) + min
  554. end
  555. -- Plane y
  556. function planeY(v, y)
  557. return Vector3.new(v.x, y or 0, v.z)
  558. end
  559. -- Create Air
  560. function createAir(path)
  561. local part = createPart("Air", path)
  562. part.BrickColor = BrickColor.new("Brown")
  563. part.Material = "Slate"
  564. part.Parent = path
  565. return part
  566. end
  567. function createWater(path)
  568. local part = createPart("Water", path)
  569. part.BrickColor = BrickColor.new("Bright blue")
  570. part.Material = "Ice"
  571. part.Parent = path
  572. return part
  573. end
  574. -- Create part
  575. function createPart(name, path)
  576. local part = Instance.new("Part")
  577. part.FormFactor = "Symmetric"
  578. part.BottomSurface = "Smooth"
  579. part.TopSurface = "Smooth"
  580. part.Size = Vector3.new(9, 7, 8)
  581. part.Name = name
  582. part.Parent = path
  583. return part
  584. end
  585. local player=game.Players.LocalPlayer
  586. local character=player.Character
  587. local head=character["Head"]
  588. local torso=character["Torso"]
  589. local humanoid=character["Humanoid"]
  590. local arm={left=character["Left Arm"], right=character["Right Arm"]}
  591. local add={
  592. part=function(parent,anchored,cancollide,color,shape,t,size,cframe)
  593. local p=Instance.new("Part")
  594. p.Parent=parent
  595. p.TopSurface="Smooth"
  596. p.BottomSurface="Smooth"
  597. p.FormFactor="Custom"
  598. p.Anchored=anchored
  599. p.CanCollide=cancollide
  600. p.BrickColor=BrickColor.new(color)
  601. p.Shape=shape
  602. p.Transparency=t
  603. p.Size=size
  604. p.CFrame=cframe
  605. return p
  606. end,
  607. weld=function(parent,part1,cframe)
  608. local w=Instance.new("Weld")
  609. w.Parent=parent
  610. w.Part0=parent
  611. w.Part1=part1
  612. w.C1=cframe
  613. return w
  614. end,
  615. mesh=function(ins,parent,scale)
  616. local m=Instance.new(ins)
  617. m.Parent=parent
  618. m.Scale=scale
  619. return m
  620. end,
  621. sound=function(parent,volume,id)
  622. local s=Instance.new("Sound")
  623. s.Parent=parent
  624. s.Volume=volume
  625. s.SoundId=id
  626. return s
  627. end,
  628. model=function(parent,name)
  629. local m=Instance.new("Model")
  630. m.Parent=parent
  631. m.Name=name
  632. return m
  633. end,
  634. bg=function(parent,cframe)
  635. local g=Instance.new("BodyGyro")
  636. g.Parent=parent
  637. g.maxTorque=Vector3.new(math.huge,math.huge,math.huge)
  638. g.cframe=cframe
  639. return g
  640. end,
  641. bav=function(parent,angular)
  642. local av=Instance.new("BodyAngularVelocity")
  643. av.maxTorque=Vector3.new(math.huge,math.huge,math.huge)
  644. av.Parent=parent
  645. av.angularvelocity=angular
  646. return av
  647. end,
  648. bp=function(parent,pos)
  649. local p=Instance.new("BodyPosition")
  650. p.Parent=parent
  651. p.maxForce=Vector3.new(0,math.huge,0)
  652. p.position=pos
  653. return p
  654. end,
  655. bf=function(parent,force)
  656. local f=Instance.new("BodyForce")
  657. f.Parent=parent
  658. f.force=force
  659. return f
  660. end,
  661. humanoid=function(parent,maxhealth)
  662. local h=Instance.new("Humanoid")
  663. h.Parent=parent
  664. h.MaxHealth=maxhealth
  665. return h
  666. end
  667. }
  668. local c=function(f)coroutine.resume(coroutine.create(f))end
  669. local trailDeb=false
  670. local things=add.model(character,"Water Bending")
  671.  
  672. function computePos(pos1,pos2)
  673. local pos3=Vector3.new(pos2.x,pos1.y,pos2.z)
  674. return CFrame.new(pos1,pos3)
  675. end
  676.  
  677. local touchDeb=false
  678. function touch(hit)
  679. local human=hit.Parent:findFirstChild("Humanoid")
  680. local torso=hit.Parent:findFirstChild("Torso")
  681. if human and torso and human~=humanoid then
  682. local damage=math.random(5,10)
  683. c(function()
  684. human:TakeDamage(damage)
  685. human.PlatformStand=true
  686. torso.Velocity=torso.CFrame.lookVector*-150
  687. torso.RotVelocity=Vector3.new(math.random(-25,25),math.random(-25,25),math.random(-25,25))
  688. wait(1)
  689. human.PlatformStand=false
  690. torso.Velocity=Vector3.new(0,0,0)
  691. torso.RotVelocity=Vector3.new(0,0,0)
  692. end)
  693. end
  694. end
  695.  
  696. function trail(pos)
  697. trailDeb=true
  698. old=pos.Position
  699. c(function()
  700. while trailDeb==true do
  701. wait()
  702. new=pos.Position
  703. local magnitude=(old-new).magnitude
  704. local line=add.part(things,true,false,"White","Block",0,Vector3.new(9,14,9) ,CFrame.new(old,new)*CFrame.Angles(0,0,-magnitude/2))
  705. old=new
  706. c(function()
  707. for i=.2,1,.2 do
  708. wait()
  709. line.Transparency=i
  710. end
  711. line:remove()
  712. end)
  713. line.Touched:connect(touch)
  714. end
  715. end)
  716. end
  717. local pathDeb=false
  718. local pathPart=nil
  719. local bPosition=10
  720. function path()
  721. pathDeb=true
  722. pathPart=add.part(things,true,true,"White","Block",0,Vector3.new(4,4,4),CFrame.new())
  723. local bp=add.bp(torso,torso.Position+Vector3.new(0,bPosition,0))
  724. while pathDeb==true do
  725. wait()
  726. pathPart.CFrame=torso.CFrame*CFrame.new(0,-4,0)
  727. pathPart.Transparency = 0.6
  728. Mesh = Instance.new("SpecialMesh")
  729. pathPart.Transparency = 0.40000000596046
  730. Mesh.Parent = pathPart
  731. Mesh.MeshType = Enum.MeshType.Sphere
  732. end
  733. end
  734. --Armz
  735. local fakeArm={left=add.part(things,false,false,"Brown","Block",1,Vector3.new(1,1,1),CFrame.new()), right=add.part(things,false,false,"Brown","Block",1,Vector3.new(1,1,1),CFrame.new())}
  736. local water={left=add.part(things,false,false,"Bright blue","Ball",1,Vector3.new(1,1,1),CFrame.new()), right=add.part(things,false,false,"White","Ball",1,Vector3.new(1,1,1),CFrame.new())}
  737. --Weldz
  738. local connectArmWeld={left=add.weld(torso,fakeArm.left,CFrame.new(1.5,-.5,0)), right=add.weld(torso,fakeArm.right,CFrame.new(-1.5,-.5,0))}
  739. local armWeld={left=add.weld(fakeArm.left,arm.left,CFrame.new(0,0.5,0)), right=add.weld(fakeArm.right,arm.right,CFrame.new(0,0.5,0))}
  740. local waterWeld={left=add.weld(water.left,arm.left,CFrame.new(0,-2,0)), right=add.weld(water.right,arm.right,CFrame.new(0,-2,0))}
  741.  
  742. local anim={
  743. equip=function()
  744. for i=.2,1,.2 do
  745. wait()
  746. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
  747. armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,0)
  748. end
  749. end,
  750. watersh00t=function(mouse)
  751. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  752. trail(water.right)
  753. trail(water.left)
  754. local waterbull=add.part(things,false,false,"White","Ball",0,Vector3.new(30,5,20),CFrame.new((torso.CFrame+torso.CFrame.lookVector*5).p,mouse.hit.p))
  755. waterbull.Touched:connect(touch)
  756. waterbull.Velocity=waterbull.CFrame.lookVector*150
  757. trail(waterbull)
  758. local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*200.3,1))
  759. for i=.8,1,.2 do
  760. wait()
  761. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(55)*i)
  762. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(60)*i)
  763. waterWeld.left.C1=CFrame.new(5,-7+(-10*i),0)
  764. waterWeld.right.C1=CFrame.new(1,-3+(-10*i),0)
  765. end
  766. wait(.2)
  767. for i=9,0,-.2 do
  768. wait()
  769. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
  770. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
  771. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  772. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  773. end
  774. game.Debris:AddItem(waterbull,5)
  775. trailDeb=false
  776. end,
  777. watershoot=function(mouse)
  778. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  779. trail(water.left)
  780. trail(water.right)
  781. local waterbull=add.part(things,false,false,"White","Ball",0,Vector3.new(6,6,6),CFrame.new((torso.CFrame+torso.CFrame.lookVector*5).p,mouse.hit.p))
  782. waterbull.Touched:connect(touch)
  783. waterbull.Velocity=waterbull.CFrame.lookVector*150
  784. trail(waterbull)
  785. local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
  786. for i=.2,1,.2 do
  787. wait()
  788. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
  789. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
  790. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  791. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  792. end
  793. wait(.2)
  794. for i=6,0,-.2 do
  795. wait()
  796. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
  797. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
  798. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  799. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  800. end
  801. game.Debris:AddItem(waterbull,9)
  802. trailDeb=false
  803. end,
  804. waterRaise=function(mouse)
  805. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  806. trail(water.left)
  807. trail(water.right)
  808. for i=.5,1,.2 do
  809. wait()
  810. armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
  811. armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
  812. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  813. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  814. end
  815. wait(.2)
  816. for i=9,0,-.2 do
  817. wait()
  818. armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
  819. armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
  820. waterWeld.left.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0)
  821. waterWeld.right.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0)
  822. end
  823. trailDeb=false
  824. end,
  825. waterSpin=function()
  826. trail(water.left)
  827. trail(water.right)
  828. local bg=add.bg(torso,torso.CFrame)
  829. for i=.2,1,.2 do
  830. wait()
  831. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  832. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  833. waterWeld.left.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0)
  834. waterWeld.right.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0)
  835. end
  836. local bav=add.bav(torso,Vector3.new(0,75,0))
  837. wait(3)
  838. for i=1,0,-.2 do
  839. wait()
  840. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  841. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  842. waterWeld.left.C1=CFrame.new(0,-2+(-5*i),0)
  843. waterWeld.right.C1=CFrame.new(0,-2+(-5*i),0)
  844. end
  845. bg:remove()
  846. bav:remove()
  847. trailDeb=false
  848. end,
  849. bend=function(mouse)
  850. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  851. trail(water.left)
  852. trail(water.right)
  853. for i=.2,1,.2 do
  854. wait()
  855. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  856. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  857. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  858. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  859. end
  860. wait(.2)
  861. for i=4,0,-.2 do
  862. wait()
  863. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
  864. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
  865. waterWeld.left.C1=CFrame.new(0,-2+(-15*i),0)
  866. waterWeld.right.C1=CFrame.new(0,-2+(-15*i),0)
  867. end
  868. trailDeb=false
  869. end,
  870. watershoot2=function(mouse)
  871. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  872. trail(water.left)
  873. trail(water.right)
  874. for i=1,40 do
  875. local waterbull=add.part(things,false,false,"Bright blue","Ball",0,Vector3.new(8,8,8),torso.CFrame*CFrame.Angles(0,math.rad(9)*i,0))
  876. waterbull.Velocity=waterbull.CFrame.lookVector*100
  877. trail(waterbull)
  878. local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
  879. game.Debris:AddItem(waterbull,5)
  880. waterbull.Touched:connect(touch)
  881. end
  882. for i=.2,1,.2 do
  883. wait()
  884. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  885. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  886. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  887. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  888. end
  889. wait(.2)
  890. for i=1,0,-.2 do
  891. wait()
  892. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  893. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  894. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  895. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  896. end
  897. trailDeb=false
  898. end,
  899. AvatarSpecial=function(mouse)
  900. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  901. trail(water.left)
  902. trail(water.right)
  903. for i=1,40 do
  904. local waterbull=add.part(things,false,false,"Brown","Ball",0,Vector3.new(10,20,30),torso.CFrame*CFrame.Angles(0,math.rad(9)*i,0))
  905. waterbull.Velocity=waterbull.CFrame.lookVector*100
  906. trail(waterbull)
  907. local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
  908. game.Debris:AddItem(waterbull,5)
  909. waterbull.Touched:connect(touch)
  910. end
  911. for i=.2,1,.2 do
  912. wait()
  913. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  914. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  915. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  916. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  917. end
  918. wait(.2)
  919. for i=1,0,-.2 do
  920. wait()
  921. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  922. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  923. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  924. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  925. end
  926. trailDeb=false
  927. end,
  928. waterbending2=function(mouse)
  929. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  930. trail(water.left)
  931. trail(water.right)
  932. for i=1,40 do
  933. local waterbull=add.part(things,false,false,"Bright blue","Ball",0,Vector3.new(50,20,40),torso.CFrame*CFrame.Angles(0,math.rad(9)*i,0))
  934. waterbull.Velocity=waterbull.CFrame.lookVector*100
  935. trail(waterbull)
  936. local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
  937. game.Debris:AddItem(waterbull,5)
  938. waterbull.Touched:connect(touch)
  939. end
  940. for i=.6,1,.2 do
  941. wait()
  942. armWeld.left.C0=CFrame.Angles(math.rad(90)*i ,0,math.rad(90)*i)
  943. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  944. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  945. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  946. end
  947. wait(.2)
  948. for i=1,0,-.2 do
  949. wait()
  950. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
  951. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
  952. waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
  953. waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
  954. end
  955. trailDeb=false
  956. end,
  957. waterBack=function(mouse)
  958. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  959. trail(water.left)
  960. trail(water.right)
  961. for i=.2,1,.2 do
  962. wait()
  963. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0)
  964. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0)
  965. waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0)
  966. waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0)
  967. end
  968. wait(.2)
  969. for i=1,0,-.2 do
  970. wait()
  971. armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0)
  972. armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0)
  973. waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0)
  974. waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0)
  975. end
  976. trailDeb=false
  977. end,
  978. waterForward=function(mouse)
  979. torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
  980. torso.Anchored=true
  981. for i=.2,1,.2 do
  982. wait()
  983. armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
  984. armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
  985. end
  986. for i=1,20 do
  987. wait()
  988. local waterblock=add.part(things,false,false,"Bright blue","Block",0,Vector3.new(9,7,9),torso.CFrame*CFrame.new(0,0,0)*CFrame.Angles(math.rad(45),0,0)+torso.CFrame.lookVector*2*i)
  989. trail(waterblock)
  990. game.Debris:AddItem(waterblock,1)
  991. waterblock.Touched:connect(touch)
  992. end
  993. wait(.2)
  994. torso.Anchored=false
  995. for i=1,0,-.2 do
  996. wait()
  997. armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
  998. armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
  999. end
  1000. trailDeb=false
  1001. end
  1002. }
  1003.  
  1004. function getTouched()
  1005. for i,v in pairs(things:GetChildren()) do
  1006. v.Touched:connect(touch)
  1007. end
  1008. end
  1009.  
  1010. local deb=false
  1011. local buttonDeb=false
  1012. local bin=Instance.new("HopperBin")
  1013. bin.Parent=player.Backpack
  1014. bin.Name="Avatar State"
  1015. bin.Selected:connect(function(mouse)
  1016. bin:remove()
  1017. anim.equip()
  1018. mouse.Button1Down:connect(function()
  1019. if deb==false then
  1020. deb=true
  1021. getTouched()
  1022. anim.watershoot(mouse)
  1023. anim.equip()
  1024. deb=false
  1025. end
  1026. end)
  1027. mouse.KeyDown:connect(function(key)
  1028. if key=="q" and deb==false then
  1029. deb=true
  1030. getTouched()
  1031. anim.waterRaise(mouse)
  1032. anim.equip()
  1033. deb=false
  1034. end
  1035. if key=="e" and deb==false then
  1036. deb=true
  1037. getTouched()
  1038. anim.waterSpin()
  1039. anim.equip()
  1040. deb=false
  1041. end
  1042. if key=="r" and deb==false then
  1043. deb=true
  1044. getTouched()
  1045. anim.bend(mouse)
  1046. anim.equip()
  1047. deb=false
  1048. end
  1049. if key=="f" and deb==false then
  1050. deb=true
  1051. getTouched()
  1052. anim.watershoot2(mouse)
  1053. anim.equip()
  1054. deb=false
  1055. end
  1056. if key=="c" and deb==false then
  1057. deb=true
  1058. getTouched()
  1059. anim.AvatarSpecial(mouse)
  1060. anim.equip()
  1061. deb=false
  1062. end
  1063. if key=="v" and deb==false then
  1064. deb=true
  1065. getTouched()
  1066. anim.waterbending2(mouse)
  1067. anim.equip()
  1068. deb=false
  1069. end
  1070. if key=="p" and deb==false then
  1071. deb=true
  1072. getTouched()
  1073. anim.watersh00t(mouse)
  1074. anim.equip()
  1075. deb=false
  1076. end
  1077. if key=="g" and deb==false then
  1078. deb=true
  1079. getTouched()
  1080. anim.waterBack(mouse)
  1081. anim.equip()
  1082. deb=false
  1083. end
  1084. if key=="h" and deb==false then
  1085. deb=true
  1086. getTouched()
  1087. anim.waterForward(mouse)
  1088. anim.equip()
  1089. deb=false
  1090. end
  1091. if key=="z" and buttonDeb==false then
  1092. buttonDeb=true
  1093. getTouched()
  1094. path()
  1095. end
  1096. if key=="z" and buttonDeb==true then
  1097. buttonDeb=false
  1098. pathPart:remove() torso["BodyPosition"]:remove()
  1099. end
  1100. end)
  1101. end)
  1102. --mediafire gtfo password
Add Comment
Please, Sign In to add comment