--Water bending
local player=game.Players.LocalPlayer
local character=player.Character
local head=character["Head"]
local torso=character["Torso"]
local humanoid=character["Humanoid"]
local arm={left=character["Left Arm"], right=character["Right Arm"]}
local add={
part=function(parent,anchored,cancollide,color,shape,t,size,cframe)
local p=Instance.new("Part")
p.Parent=parent
p.TopSurface="Smooth"
p.BottomSurface="Smooth"
p.FormFactor="Custom"
p.Anchored=anchored
p.CanCollide=cancollide
p.BrickColor=BrickColor.new(color)
p.Shape=shape
p.Transparency=t
p.Size=size
p.CFrame=cframe
return p
end,
weld=function(parent,part1,cframe)
local w=Instance.new("Weld")
w.Parent=parent
w.Part0=parent
w.Part1=part1
w.C1=cframe
return w
end,
mesh=function(ins,parent,scale)
local m=Instance.new(ins)
m.Parent=parent
m.Scale=scale
return m
end,
sound=function(parent,volume,id)
local s=Instance.new("Sound")
s.Parent=parent
s.Volume=volume
s.SoundId=id
return s
end,
model=function(parent,name)
local m=Instance.new("Model")
m.Parent=parent
m.Name=name
return m
end,
bg=function(parent,cframe)
local g=Instance.new("BodyGyro")
g.Parent=parent
g.maxTorque=Vector3.new(math.huge,math.huge,math.huge)
g.cframe=cframe
return g
end,
bav=function(parent,angular)
local av=Instance.new("BodyAngularVelocity")
av.maxTorque=Vector3.new(math.huge,math.huge,math.huge)
av.Parent=parent
av.angularvelocity=angular
return av
end,
bp=function(parent,pos)
local p=Instance.new("BodyPosition")
p.Parent=parent
p.maxForce=Vector3.new(0,math.huge,0)
p.position=pos
return p
end,
bf=function(parent,force)
local f=Instance.new("BodyForce")
f.Parent=parent
f.force=force
return f
end,
humanoid=function(parent,maxhealth)
local h=Instance.new("Humanoid")
h.Parent=parent
h.MaxHealth=maxhealth
return h
end
}
local c=function(f)coroutine.resume(coroutine.create(f))end
local trailDeb=false
local things=add.model(character,"Water Bending")
function computePos(pos1,pos2)
local pos3=Vector3.new(pos2.x,pos1.y,pos2.z)
return CFrame.new(pos1,pos3)
end
local touchDeb=false
function touch(hit)
local human=hit.Parent:findFirstChild("Humanoid")
local torso=hit.Parent:findFirstChild("Torso")
if human and torso and human~=humanoid then
local damage=math.random(5,10)
c(function()
human:TakeDamage(damage)
human.PlatformStand=true
torso.Velocity=torso.CFrame.lookVector*-150
torso.RotVelocity=Vector3.new(math.random(-25,25),math.random(-25,25),math.random(-25,25))
wait(1)
human.PlatformStand=false
torso.Velocity=Vector3.new(0,0,0)
torso.RotVelocity=Vector3.new(0,0,0)
end)
end
end
function trail(pos)
trailDeb=true
old=pos.Position
c(function()
while trailDeb==true do
wait()
new=pos.Position
local magnitude=(old-new).magnitude
local line=add.part(things,true,false,"Bright blue","Block",0,Vector3.new(8,8,8) ,CFrame.new(old,new)*CFrame.Angles(0,0,-magnitude/2))
old=new
c(function()
for i=.2,1,.2 do
wait()
line.Transparency=i
end
line:remove()
end)
line.Touched:connect(touch)
end
end)
end
local pathDeb=false
local pathPart=nil
local bPosition=10
function path()
pathDeb=true
pathPart=add.part(things,true,true,"Bright blue","Block",0,Vector3.new(6,1,6),CFrame.new())
local bp=add.bp(torso,torso.Position+Vector3.new(0,bPosition,0))
while pathDeb==true do
wait()
pathPart.CFrame=torso.CFrame*CFrame.new(0,-4,0)
end
end
--Armz
local fakeArm={left=add.part(things,false,false,"White","Block",1,Vector3.new(1,1,1),CFrame.new()), right=add.part(things,false,false,"White","Block",1,Vector3.new(1,1,1),CFrame.new())}
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,"Bright blue","Ball",1,Vector3.new(1,1,1),CFrame.new())}
--Weldz
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))}
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))}
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))}
local anim={
equip=function()
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,0)
end
end,
watershoot=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
trail(water.left)
trail(water.right)
local waterbull=add.part(things,false,false,"Bright blue","Ball",0,Vector3.new(6,6,6),CFrame.new((torso.CFrame+torso.CFrame.lookVector*5).p,mouse.hit.p))
waterbull.Touched:connect(touch)
waterbull.Velocity=waterbull.CFrame.lookVector*150
trail(waterbull)
local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
wait(.2)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
game.Debris:AddItem(waterbull,5)
trailDeb=false
end,
waterRaise=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
trail(water.left)
trail(water.right)
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
wait(.2)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0)
end
trailDeb=false
end,
waterSpin=function()
trail(water.left)
trail(water.right)
local bg=add.bg(torso,torso.CFrame)
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0)
end
local bav=add.bav(torso,Vector3.new(0,75,0))
wait(3)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-5*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-5*i),0)
end
bg:remove()
bav:remove()
trailDeb=false
end,
bend=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
trail(water.left)
trail(water.right)
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
wait(.2)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-15*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-15*i),0)
end
trailDeb=false
end,
watershoot2=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
trail(water.left)
trail(water.right)
for i=1,40 do
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))
waterbull.Velocity=waterbull.CFrame.lookVector*100
trail(waterbull)
local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0))
game.Debris:AddItem(waterbull,5)
waterbull.Touched:connect(touch)
end
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
wait(.2)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i)
waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0)
end
trailDeb=false
end,
waterBack=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
trail(water.left)
trail(water.right)
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0)
waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0)
end
wait(.2)
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0)
armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0)
waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0)
waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0)
end
trailDeb=false
end,
waterForward=function(mouse)
torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p)
torso.Anchored=true
for i=.2,1,.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
end
for i=1,20 do
wait()
local waterblock=add.part(things,false,false,"Bright blue","Block",0,Vector3.new(4,4,4),torso.CFrame*CFrame.new(0,0,0)*CFrame.Angles(math.rad(45),0,0)+torso.CFrame.lookVector*2*i)
trail(waterblock)
game.Debris:AddItem(waterblock,1)
waterblock.Touched:connect(touch)
end
wait(.2)
torso.Anchored=false
for i=1,0,-.2 do
wait()
armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i)
armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i)
end
trailDeb=false
end
}
function getTouched()
for i,v in pairs(things:GetChildren()) do
v.Touched:connect(touch)
end
end
local deb=false
local buttonDeb=false
local bin=Instance.new("HopperBin")
bin.Parent=player.Backpack
bin.Name="Water Bending"
bin.Selected:connect(function(mouse)
bin:remove()
anim.equip()
mouse.Button1Down:connect(function()
if deb==false then
deb=true
getTouched()
anim.watershoot(mouse)
anim.equip()
deb=false
end
end)
mouse.KeyDown:connect(function(key)
if key=="q" and deb==false then
deb=true
getTouched()
anim.waterRaise(mouse)
anim.equip()
deb=false
end
if key=="e" and deb==false then
deb=true
getTouched()
anim.waterSpin()
anim.equip()
deb=false
end
if key=="r" and deb==false then
deb=true
getTouched()
anim.bend(mouse)
anim.equip()
deb=false
end
if key=="f" and deb==false then
deb=true
getTouched()
anim.watershoot2(mouse)
anim.equip()
deb=false
end
if key=="g" and deb==false then
deb=true
getTouched()
anim.waterBack(mouse)
anim.equip()
deb=false
end
if key=="h" and deb==false then
deb=true
getTouched()
anim.waterForward(mouse)
anim.equip()
deb=false
end
if key=="z" and buttonDeb==false then
buttonDeb=true
getTouched()
path()
end
if key=="z" and buttonDeb==true then
buttonDeb=false
pathPart:remove() torso["BodyPosition"]:remove()
end
end)
end) --mediafire
Comments
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|0 👍
/0 👎