SHOW:
|
|
- or go back to the newest paste.
1 | - | local player = game.Players.andrewengen1 |
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 |