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