--AlaStaff Gifted by machontz, Local Script!
--===============Changes===============--
new= Instance.new;
unew= UDim2.new;
vnew= Vector3.new;
fnew= CFrame.new;
cnew= Color3.new;
bcn= BrickColor.new;
look= CFrame.lookVector;
rot= CFrame.fromEulerAnglesXYZ;
--=====================================--
Tool=new('Tool')
Tool.Name='AlaStaff'
Tool.GripPos=vnew(0,.5,0)
Tool.TextureId='http://www.roblox.com/asset/?id=54353092'
ToolHandle=new('Part')
ToolHandle.Material=('Wood')
ToolHandle.BrickColor=bcn('Reddish brown')
ToolHandle.Name='Handle'
ToolHandle.formFactor=3
ToolHandle.Size=vnew(.5,6,.5)
ToolHandle.CanCollide=false
ToolHandle.Parent=Tool
Tool.Parent=game.Players.LocalPlayer.Backpack
script.Parent = Tool
--================Tool!================--
tool=script.Parent
staff=tool.Handle
SmokePart=nil
--=====================================--
--===============Player!===============--
player=nil
if tool.Parent:IsA('Model')then
player=game.Players[tool.Parent.Name]
elseif tool.Parent:IsA('Backpack')then
player=tool.Parent.Parent
end
--=====================================--
--================Math!================--
random= math.random;
pi= math.pi;
--=====================================--
--==============Services!==============--
debris= game:service('Debris')
workspace= game:service('Workspace')
lighting= game:service('Lighting')
insert= game:service('InsertService')
--=====================================--
--===============Changes===============--
new= Instance.new;
unew= UDim2.new;
vnew= Vector3.new;
fnew= CFrame.new;
cnew= Color3.new;
bcn= BrickColor.new;
look= CFrame.lookVector;
rot= CFrame.fromEulerAnglesXYZ;
soul= 0;
--=====================================--
clickActive=false
kayActive=false
--===========Base Functions!===========--
x=function(f)coroutine.resume(coroutine.create(f))end
sing=function(name,parent)
x(function()
mmo=new('Model')
debris:AddItem(mmo,1)
mmo.Name='StaffFunction'..name
V=new('ObjectValue',mmo)
V.Value=player
V.Name='user'
mmq=new('ObjectValue',mmo)
mmq.Name='parent'
mmq.Value=parent
mmc=mmo:clone()
debris:AddItem(mmc,1)
mmc.Parent=lighting
end)
end
ko=function(humanoid)
if humanoid:FindFirstChild('creator',true)then return end
k=new('ObjectValue')
k.Name='creator'
k.Value=player
k.Parent=humanoid
player.Character.Humanoid:TakeDamage(-humanoid.MaxHealth)
soul=soul+1
end
s1=function(t)
x(function()
clickActive=false
for i,h in pairs(t.Parent:children())do
if h:IsA('Humanoid')then
h:TakeDamage(.1)
if h.Health<=0 then
ko(h)
print'DIE!'
end
return
end
end
t:BreakJoints()
clickActive=false
end)
end
s2=function(t)
x(function()
delay(.1,function()s3(t)end)
if t:FindFirstChild('w-')then return end
q=player.Character.Torso.CFrame.lookVector
wq=new('BodyThrust')
debris:AddItem(wq,.2)
x(function()debris:AddItem(t.Smoke,.02)end)
x(function()
smc=Smoke:clone()
debris:AddItem(smc,3)
smc.Enabled=true
smc.Parent=t
end)
wq.force=vnew(40,40,40)
wq.location=vnew(0,100,1)
wq.Parent=t
qwe = Instance.new('BodyVelocity')
debris:AddItem(qwe,.3)
qwe.Name='w-'
qwe.maxForce=Vector3.new(1e7,1e7,1e7)
qwe.P=125
qwe.velocity=(Vector3.new(q.x,q.y,q.z)*100)+Vector3.new(0,30,0)
qwe.Parent=t
clickActive=false
for i,h in pairs(t.Parent:children())do
if h:IsA('Humanoid')then
h:TakeDamage(10)
if h.Health<=0 then
ko(h)
print'DIE!'
end
return
end
end
t:BreakJoints()
clickActive=false
end)
end
s3=function(t)
x(function()
if t.Size.x+t.Size.y+t.Size.z<=20 then
t.Anchored=false
end
if staff:FindFirstChild('ow')or staff:FindFirstChild('wq')then return end
pa=new('Part')
debris:AddItem(pa,3)
pa.Name='ow'
pa.formFactor=0
pa.Size=vnew(1,1,1)
pa.Transparency=1
pa.CanCollide=false
pa.Parent=staff
fire=new('Fire',pa)
fire.Size=3
fire.Heat=14
weld=new('Weld',staff)
weld.Part0=staff
weld.Part1=pa
weld.C0=fnew(0,staff.Size.y/1.3,0)
clickActive=false
for i,h in pairs(t.Parent:children())do
if h:IsA('Humanoid')then
h:TakeDamage(20)
if h.Health<=0 then
ko(h)
end
return
end
end
t:BreakJoints()
clickActive=false
end)
end
--=====================================--
tool.TextureId='http://www.roblox.com/asset/?id=54353092'
tool.Activated:connect(function()
if kayActive==true then return end
clickActive=true
mode=mode+1
if mode==2 then
a=new('StringValue')
debris:AddItem(a,1)
a.Name='toolanim'
a.Value='Slash'
a.Parent=tool
elseif mode==3 then
s3()
end
wait(.3)
mode=1
clickActive=false
end)
tool.Equipped:connect(function(d)
pcall(function()staff.CFrame=player.Character['Right Arm'].CFrame end)
d.KeyUp:connect(function(k)if k=='e'then Round=false end end)
d.KeyDown:connect(function(k)
x(function()
if k=='t'then
if clickActive==true then return end
kayActive=true --Rofl
if d.Target==nil then return end
torso=player.Character.Torso
torso.Velocity=vnew(0,0,0)
torso.RotVelocity=vnew(0,0,0)
torso.CFrame=fnew(d.Hit.p.x,d.Hit.p.y+5,d.Hit.p.z)
torso.Velocity=vnew(0,0,0)
torso.RotVelocity=vnew(0,0,0)
Sp.Enabled=true
wait(.1)
Sp.Enabled=false
kayActive=false
elseif k=='p'then
if Poisoning==true then print'Poisoning Active!' return end
Poisoning=true
Pp=new('Part')
Pp.formFactor=0
Pp.Size=vnew(1,1,1)
Pp.Transparency=.9
Pp.Position=d.Hit.p
Pp.BrickColor=BrickColor.Green()
Pp.CanCollide=false
Pp.Anchored=true
new('SpecialMesh',Pp).MeshType='Sphere'
Pp.Mesh.Scale=vnew(50,50,50)
Pp.Parent=workspace
for lw=1,10 do
nPp=new('Part')
nPp.formFactor=0
nPp.Size=vnew(1,1,1)
nPp.Transparency=.9
nPp.CFrame=Pp.CFrame
nPp.BrickColor=BrickColor.Green()
nPp.CanCollide=false
nPp.Anchored=true
new('SpecialMesh',nPp).MeshType='Sphere'
nPp.Mesh.Scale=vnew(4.5*lw,4.5*lw,4.5*lw)
nPp.Parent=Pp
end
debris:AddItem(Pp,200*.2)
delay(0,function()
for RoundNew=1,200 do
wait(.2)
if Pp==nil then break end
pcall(function()
for yy,X in ipairs(game:service('Players'):GetPlayers())do
if X~=player then
pcall(function()
if (X.Character.Torso.Position-Pp.Position).magnitude<30 then
for z,humaa in pairs(X.Character:children())do
if humaa:IsA('Humanoid')then
pcall(function()
newSound=new('Sound')
newSound.Parent=X.Backpack
end)
humaa:TakeDamage(5)
if humaa.Health<=0 then
ko(humaa)
end
end
end
end
end)
end
end
end)
end
pcall(function()Pp:remove()end)
Poisoning=false
end)
elseif k=='e'then
if clickActive==true or kayActive==true then return end
kayActive=true
Round=true
Sp.Enabled=true
soundnew=new('Sound')
soundnew.SoundId='rbxasset://sounds/collide.wav'
soundnew.Pitch=.5
soundnew.Volume=1
repeat
wait(.05)
pcall(function()
for ah,Vplayer in ipairs(game:service('Players'):GetPlayers())do
pcall(function()
if (Vplayer.Character.Torso.Position-d.Hit.p).magnitude<7 then
for l,o in pairs(Vplayer.Character:children())do
if o:IsA('Humanoid')then ko(o)end
end
end
end)
end
pcall(function()player.Character.Torso.CFrame=fnew(player.Character.Torso.Position,vnew(d.hit.p.x,0,d.hit.p.z))end)
Apart=new('Part')
soundnew:clone().Parent=Apart
debris:AddItem(Apart,.3)
Apart.formFactor=0
Apart.Size=vnew(1,1,1)
Apart.Transparency=.2
Apart.CanCollide=true
--Apart.Anchored=true
rand=math.random(1,6)
new('BlockMesh',Apart).Scale=vnew(rand,rand,rand)
Apart.BrickColor=BrickColor.random()
Apart.CFrame=rot(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360)))+d.Hit.p+vnew(math.random(-2,2),math.random(-2,2),math.random(-2,2))
Apart.Parent=workspace
pcall(function()Apart.Sound:play()end)
pcall(function()Apart.Sound:play()end)
exp=new('Explosion')
exp.BlastRadius=6
exp.Position=Apart.Position
exp.Parent=Apart
end)
until Round==false
pcall(function()
soundnew:remove()
Sp.Enabled=false
end)
kayActive=false
elseif k=='n'then
if clickActive==true then return end
kayActive=true
Smoke.RiseVelocity=20
x(function()
if Smoke.Enabled==true then return end
for i,v in pairs(SmokePart:children())do
x(function()v.Enabled=true end)
end
for b=1,10 do
wait()
for i,v in pairs(tool:children())do
if v==staff then
v.BrickColor=bcn(1003)
v.Material=('Slate')
wait()
v.Material=('Wood')
v.BrickColor=bcn('Reddish brown')
end
if v~=staff and v~=SmokePart and v~=script then
v.Material=('Plastic')
v.Transparency=b/10
if b==10 then
v:remove()
end
end
end
end
for i,v in pairs(SmokePart:children())do
x(function()v.Enabled=false end)
end
Smoke.RiseVelocity=5
kayActive=false
end)
elseif k=='q'then
if clickActive==true then return end
kayActive=true
x(function()
if Sp.Enabled==true then return end
Sp.Enabled=true
Model=new('Model',player.Character)
debris:AddItem(Model,30)
Model.Name='Snare'..random(-999999,999999)
partnew=new('Part')
partnew.Anchored=true
partnew.Shape=0
partnew.Size=vnew(4,4,4)
partnew.Material=('Slate')
partnew.BrickColor=bcn('Bright red')
partnew.BottomSurface=0
partnew.TopSurface=0
partnew.Name='Main'
partnew.CFrame=fnew(d.Hit.p.x,d.Hit.p.y,d.Hit.p.z)
partnew.Parent=Model
for ee=1,6 do
partlist={}
for aa=1,14 do
wait()
p=new('Part')
partlist[aa]=p
p.formFactor=3
p.CanCollide=false
p.Size=vnew(2,2,2)
p.BottomSurface=0
p.TopSurface=0
p.Material=('Slate')
if aa~=1 then
p.BrickColor=bcn(1003)
p.Size=Vector3.new(2,2,2/(aa/10))
end
p.CFrame=partnew.CFrame
p.Parent=Model
if aa==1 then
w=new('Weld',partnew)
else
wq=aa-1
w=new('Weld',partlist[wq])
end
w.Part0=w.Parent
w.Part1=p
w.C0=rot(0,0,.25/-aa)+vnew(p.Size.x/2,0,0)
if aa==2 then
w.C0=rot(0,ee,.2)+vnew(0,.2,0)
end
end
end
for i,v in pairs(Model:children())do
if v:IsA('BasePart')then
v.Anchored=true
v:BreakJoints()
end
end
sing('1',partnew)
Sp.Enabled=false
kayActive=false
end)
end
end)
end)
x(function()mainarm=player.Character['Right Arm']
weld=new('Weld',mainarm)
weld.Part0=weld.Parent
weld.Part1=staff
weld.C0=rot(-pi/2,0,0)+vnew(0,-1,.55)
end)
tool.TextureId='http://www.roblox.com/asset/?id=54353092'
mode=1
if z~=nil then return end
z='asd'
for i,v in pairs(tool:children())do
if v~=staff and v~=script then
v:remove()
end
end
x(function()
for cc=1,6 do
for i=1,13 do
wait''
if tool.Parent~=player.Character then
break
end
x(function()
p=new('Part')
p.Name=i
p.formFactor=3
p.CanCollide=false
p.Size=vnew(.6,.6,.6)
p.Material=('Slate')
if i~=1 then
p.Size=vnew(.52+i/200,.52-i/40,.52-i/40)
p.BrickColor=bcn(1003)
end
p.CFrame=staff.CFrame
p.Parent=tool
if i==1 then
w=new('Weld',staff)
else
qn=tool[i-1]
w=new('Weld',tool[i-1])
qn.Name='?'
end
w.Part0=w.Parent
w.Part1=p
if i==1 then
w.C0=rot(0,-pi/2*cc/1.5,.2)+vnew(0,staff.Size.y/2,0)
else
w.C0=rot(0,0,.2)+vnew(p.Size.x/2,0,0)
end
end)
end
end
end)
p=new('Part')
p.Shape=0
p.Name='a'
p.Material=('Slate')
p.Size=vnew(1,1,1)
p.CanCollide=false
p.Parent=tool
w=new('Weld',staff)
w.Part0=staff
w.Part1=p
w.C0=fnew(0,staff.Size.y/2,0)
p=new('Part')
p.Shape=0
p.Name='Smoke'
p.Material=('Slate')
p.BottomSurface=0
p.TopSurface=0
p.Size=vnew(1,1,1)
p.BrickColor=bcn(1003)
p.CanCollide=false
p.Parent=tool
Smoke=new('Smoke',p)
Smoke.Size=.01
Smoke.Enabled=false
Smoke.Color=cnew(0,0,0)
Smoke.Opacity=1
Smoke.RiseVelocity=5
Sp=new('Sparkles')
Sp.Enabled=false
Sp.Parent=p
Sp.Color=cnew(1,0,0)
w=new('Weld',staff)
w.Part0=staff
w.Part1=p
w.C0=fnew(0,staff.Size.y/1.3,0)
SmokePart=p
hagal={}
for y=1,4 do
for i=1,20 do
if tool.Parent~=player.Character then
break
end
p=new('Part')
hagal[i]=p
p.formFactor=3
p.Name='q'
p.BrickColor=bcn(1003)
p.Size=vnew(.5,.4,.5)
p.Material=('Slate')
p.CanCollide=false
p.Parent=tool
if i==1 then
w=new('Weld',staff)
else
w=new('Weld',hagal[i-1])
end
w.Part0=w.Parent
w.Part1=p
if i==1 then
w.C0=rot(0,pi/2*y,0)+vnew(0,(staff.Size.y/2)-i*p.Size.y+.2,0)
elseif i<=10 then
w.C0=rot(0,pi/2/i,0)+vnew(.05,-p.Size.y/2,0)
elseif i>10 then
w.C0=rot(.1,pi/2/i*6,0)+vnew(.03,-p.Size.y,0)
end
wait''
end
end
for i,v in pairs(tool:children())do
if v.Name=='Smoke'then
v.Touched:connect(function(a)
x(function()
if a.Parent~=player.Character and a.Parent~=tool then
if mode==1 then
s1(a)
elseif mode==2 then
s2(a)
elseif mode==3 then
s3(a)
end
end
end)
end)
end
end
end)
tool.Unequipped:connect(function()
if tool.Parent:IsA('Backpack')then
for i,v in pairs(tool:children())do
if v~=staff and v~=script then
v:remove()
end
end
end
z=nil
end)
x(function()
player.Character.Humanoid.Died:connect(function()if tool.Parent~=player.Character then tool:remove() return end
if fakestaff~=nil then return end
fakestaff=new('Model',workspace)
debris:AddItem(fakestaff,10)
for i,v in pairs(tool:children())do
if v~=script then
v.Parent=fakestaff
v.Anchored=true
x(function()v.Smoke.Enabled=true end)
x(function()v.Sparkles.Enabled=true end)
end
end
sing('2',fakestaff.Smoke)
fakestaff.Handle:remove()
fakestaff:BreakJoints()
tool:remove()
end)
end)
Comments
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|0 👍
/0 👎