Player=game:GetService("Players").LocalPlayer
Character=Player.Character 
PlayerGui=Player.PlayerGui 
Backpack=Player.Backpack 
Torso=Character.Torso 
Head=Character.Head 
Humanoid=Character.Humanoid
m=Instance.new('Model',Character)
LeftArm=Character["Left Arm"] 
LeftLeg=Character["Left Leg"] 
RightArm=Character["Right Arm"] 
RightLeg=Character["Right Leg"] 
LS=Torso["Left Shoulder"] 
LH=Torso["Left Hip"] 
RS=Torso["Right Shoulder"] 
RH=Torso["Right Hip"] 
Face = Head.face
Neck=Torso.Neck
it=Instance.new
attacktype=1
vt=Vector3.new
cf=CFrame.new
euler=CFrame.fromEulerAnglesXYZ
angles=CFrame.Angles
cloaked=false
necko=cf(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
necko2=cf(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
LHC0=cf(-1,-1,0,-0,-0,-1,0,1,0,1,0,0)
LHC1=cf(-0.5,1,0,-0,-0,-1,0,1,0,1,0,0)
RHC0=cf(1,-1,0,0,0,1,0,1,0,-1,-0,-0)
RHC1=cf(0.5,1,0,0,0,1,0,1,0,-1,-0,-0)
RootPart=Character.HumanoidRootPart
RootJoint=RootPart.RootJoint
RootCF=euler(-1.57,0,3.14)
attack = false 
attackdebounce = false 
deb=false
equipped=true
hand=false
MMouse=nil
combo=0
mana=0
trispeed=1
pathtrans=.7
attackmode='none'
local idle=0
local Anim="Idle"
local Effects={}
local gun=false
local shoot=false
player=nil 
cloak=false
lightcolor='Bright blue'
 
mouse=Player:GetMouse()
--save shoulders 
RSH, LSH=nil, nil 
--welds 
RW, LW=Instance.new("Weld"), Instance.new("Weld") 
RW.Name="Right Shoulder" LW.Name="Left Shoulder"
LH=Torso["Left Hip"]
RH=Torso["Right Hip"]
TorsoColor=Torso.BrickColor
function NoOutline(Part)
Part.TopSurface,Part.BottomSurface,Part.LeftSurface,Part.RightSurface,Part.FrontSurface,Part.BackSurface = 10,10,10,10,10,10
end
player=Player 
ch=Character
RSH=ch.Torso["Right Shoulder"] 
LSH=ch.Torso["Left Shoulder"] 
-- 
RSH.Parent=nil 
LSH.Parent=nil 
-- 
RW.Name="Right Shoulder"
RW.Part0=ch.Torso 
RW.C0=cf(1.5, 0.5, 0) --* CFrame.fromEulerAnglesXYZ(1.3, 0, -0.5) 
RW.C1=cf(0, 0.5, 0) 
RW.Part1=ch["Right Arm"] 
RW.Parent=ch.Torso 
-- 
LW.Name="Left Shoulder"
LW.Part0=ch.Torso 
LW.C0=cf(-1.5, 0.5, 0) --* CFrame.fromEulerAnglesXYZ(1.7, 0, 0.8) 
LW.C1=cf(0, 0.5, 0) 
LW.Part1=ch["Left Arm"] 
LW.Parent=ch.Torso 
 
function part(formfactor,parent,reflectance,transparency,brickcolor,name,size)
local fp=it("Part")
fp.formFactor=formfactor 
fp.Parent=parent
fp.Reflectance=reflectance
fp.Transparency=transparency
fp.CanCollide=false 
fp.Locked=true
fp.BrickColor=brickcolor
fp.Name=name
fp.Size=size
fp.Position=Torso.Position 
NoOutline(fp)
fp.Material="SmoothPlastic"
fp:BreakJoints()
return fp 
end 
 
function mesh(Mesh,part,meshtype,meshid,offset,scale)
local mesh=it(Mesh) 
mesh.Parent=part
if Mesh=="SpecialMesh" then
mesh.MeshType=meshtype
if meshid~="nil" then
mesh.MeshId="http://www.roblox.com/asset/?id="..meshid
end
end
mesh.Offset=offset
mesh.Scale=scale
return mesh
end
 
function weld(parent,part0,part1,c0)
local weld=it("Weld") 
weld.Parent=parent
weld.Part0=part0 
weld.Part1=part1 
weld.C0=c0
return weld
end
 
local Color1=Torso.BrickColor
 
local bodvel=Instance.new("BodyVelocity")
local bg=Instance.new("BodyGyro")
 
function swait(num)
if num==0 or num==nil then
game:service'RunService'.Stepped:wait(0)
else
for i=0,num do
game:service'RunService'.Stepped:wait(0)
end
end
end
 
 
so = function(id,par,vol,pit) 
coroutine.resume(coroutine.create(function()
local sou = Instance.new("Sound",par or workspace)
sou.Volume=vol
sou.Pitch=pit or 1
sou.SoundId=id
swait() 
sou:play() 
game:GetService("Debris"):AddItem(sou,6)
end))
end
 
function clerp(a,b,t) 
local qa = {QuaternionFromCFrame(a)}
local qb = {QuaternionFromCFrame(b)} 
local ax, ay, az = a.x, a.y, a.z 
local bx, by, bz = b.x, b.y, b.z
local _t = 1-t
return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) 
end 
 
function QuaternionFromCFrame(cf) 
local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() 
local trace = m00 + m11 + m22 
if trace > 0 then 
local s = math.sqrt(1 + trace) 
local recip = 0.5/s 
return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 
else 
local i = 0 
if m11 > m00 then
i = 1
end
if m22 > (i == 0 and m00 or m11) then 
i = 2 
end 
if i == 0 then 
local s = math.sqrt(m00-m11-m22+1) 
local recip = 0.5/s 
return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip 
elseif i == 1 then 
local s = math.sqrt(m11-m22-m00+1) 
local recip = 0.5/s 
return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip 
elseif i == 2 then 
local s = math.sqrt(m22-m00-m11+1) 
local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip 
end 
end 
end
 
function QuaternionToCFrame(px, py, pz, x, y, z, w) 
local xs, ys, zs = x + x, y + y, z + z 
local wx, wy, wz = w*xs, w*ys, w*zs 
local xx = x*xs 
local xy = x*ys 
local xz = x*zs 
local yy = y*ys 
local yz = y*zs 
local zz = z*zs 
return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) 
end
 
function QuaternionSlerp(a, b, t) 
local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] 
local startInterp, finishInterp; 
if cosTheta >= 0.0001 then 
if (1 - cosTheta) > 0.0001 then 
local theta = math.acos(cosTheta) 
local invSinTheta = 1/math.sin(theta) 
startInterp = math.sin((1-t)*theta)*invSinTheta 
finishInterp = math.sin(t*theta)*invSinTheta  
else 
startInterp = 1-t 
finishInterp = t 
end 
else 
if (1+cosTheta) > 0.0001 then 
local theta = math.acos(-cosTheta) 
local invSinTheta = 1/math.sin(theta) 
startInterp = math.sin((t-1)*theta)*invSinTheta 
finishInterp = math.sin(t*theta)*invSinTheta 
else 
startInterp = t-1 
finishInterp = t 
end 
end 
return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp 
end
 
function rayCast(Pos, Dir, Max, Ignore)  -- Origin Position , Direction, MaxDistance , IgnoreDescendants
return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore) 
end 
 
function SkullEffect(brickcolor,cframe,x1,y1,z1,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe
local msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=4770583",vt(0,0,0),vt(x1,y1,z1))
--http://www.roblox.com/asset/?id=4770560
game:GetService("Debris"):AddItem(prt,2)
CF=prt.CFrame
coroutine.resume(coroutine.create(function(Part,Mesh,TehCF) 
for i=0,1,0.2 do
wait()
Part.CFrame=CF*cf(0,0,-0.4)
end
for i=0,1,delay do
wait()
--Part.CFrame=CF*cf((math.random(-1,0)+math.random())/5,(math.random(-1,0)+math.random())/5,(math.random(-1,0)+math.random())/5)
Mesh.Scale=Mesh.Scale
end
for i=0,1,0.1 do
wait()
Part.Transparency=i
end
Part.Parent=nil
end),prt,msh,CF)
end
 
function MagicBlock(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe
msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,5)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,delay do
wait()
Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh)
end
 
function MagicBlock2(brickcolor,cframe,Parent,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=false
prt.CFrame=cframe
msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
local wld=weld(prt,prt,Parent,cframe)
game:GetService("Debris"):AddItem(prt,5)
coroutine.resume(coroutine.create(function(Part,Mesh,Weld) 
for i=0,1,delay do
wait()
Weld.C0=euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))*cframe
--Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh,wld)
end
 
function MagicBlock3(brickcolor,cframe,Parent,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=false
prt.CFrame=cframe
msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
local wld=weld(prt,prt,Parent,euler(0,0,0)*cf(0,0,0))
game:GetService("Debris"):AddItem(prt,5)
coroutine.resume(coroutine.create(function(Part,Mesh,Weld) 
for i=0,1,delay do
wait()
Weld.C0=euler(i*20,0,0)
--Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh,wld)
end
 
function MagicCircle2(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe
local msh=mesh("CylinderMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,2)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,delay do
wait()
Part.CFrame=Part.CFrame
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
local prt2=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt2.Anchored=true
prt2.CFrame=cframe*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
local msh2=mesh("SpecialMesh",prt2,"Sphere","",vt(0,0,0),vt(0.5,0.5,0.5))
game:GetService("Debris"):AddItem(prt2,2)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,0.1 do
wait()
Part.CFrame=Part.CFrame*cf(0,0.5,0)
end
Part.Parent=nil
end),prt2,msh2)
end
for i=0,1,delay*2 do
wait()
Part.CFrame=Part.CFrame
Mesh.Scale=vt((x1+x3)-(x1+x3)*i,(y1+y3)-(y1+y3)*i,(z1+z3)-(z1+z3)*i)
end
Part.Parent=nil
end),prt,msh)
end
 
function MagicCircle(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
 
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt())
 
prt.Anchored=true
 
prt.CFrame=cframe
 
local msh=mesh("SpecialMesh",prt,"Sphere","",vt(0,0,0),vt(x1,y1,z1))
 
game:GetService("Debris"):AddItem(prt,2)
 
coroutine.resume(coroutine.create(function(Part,Mesh) 
 
local wld=nil
 
for i=0,1,delay do
 
wait()
 
Part.CFrame=Part.CFrame
 
Part.Transparency=i
 
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
 
end
 
Part.Parent=nil
 
end),prt,msh)
 
end
 
Damagefunc2=function(hit,Damage,Knockback)
        if hit.Parent==nil then
                return
        end
        CPlayer=Bin 
        h=hit.Parent:FindFirstChild("Humanoid")
        if h~=nil and hit.Parent.Name~="Fenrier" and hit.Parent:FindFirstChild("Torso")~=nil then
                if attackdebounce == false then 
        attackdebounce = true 
        coroutine.resume(coroutine.create(function() 
        wait(0.1) 
        attackdebounce = false 
        end)) 
                Damage=Damage
                if Enemy==nil then
                Enemy=hit.Parent
                HP=Enemy.Humanoid.Health
                end
                coroutine.resume(coroutine.create(function() 
                wait(1)
                if attack==false and Enemy~=nil then
                Did=HP-Enemy.Humanoid.Health
                print("Did "..Did.." Damage")
                Enemy=nil
                HP=0
                end
                end))
--[[                if game.Players:GetPlayerFromCharacter(hit.Parent)~=nil then
                        return
                end]]
                        if mana<400 then
                        mana=mana+math.random(10,20)
                        else
                        mana=400
                        end
                        c=it("ObjectValue")
                        c.Name="creator"
                        c.Value=game.Players.LocalPlayer
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
--                        print(c.Value)
                if math.random(0,99)+math.random()<=5 then
                        CRIT=true
                        Damage=Damage*2
                        critsound(2) 
--[[                        Knockback=Knockback*2
                        r=it("BodyAngularVelocity")
                        r.P=3000
                        r.maxTorque=vt(500000000,50000000000,500000000)*50000
                        r.angularvelocity=vt(math.random(-20,20),math.random(-20,20),math.random(-20,20))
                        r.Parent=hit.Parent.Torso]]
        
                end
                Damage=Damage+math.random(0,10)
--                Blood(hit.CFrame*cf(math.random(-10,10)/10,math.random(-10,10)/10,0),math.floor(Damage/2))
                h:TakeDamage(Damage)
                showDamage(hit.Parent,Damage,.5)
                vp=it("BodyVelocity")
                vp.P=500
                vp.maxForce=vt(math.huge,0,math.huge)
--                vp.velocity=Head.CFrame.lookVector*Knockback
                vp.velocity=Head.CFrame.lookVector*Knockback
                vp.Parent=hit.Parent.Torso
--[[        if Knockback>0 then
                        vp.Parent=hit.Parent.Torso
                end]]
                game:GetService("Debris"):AddItem(vp,.5)
--[[                r=it("BodyAngularVelocity")
                r.P=3000
                r.maxTorque=vt(500000000,50000000000,500000000)*50000
                r.angularvelocity=vt(math.random(-20,20),math.random(-20,20),math.random(-20,20))
                r.Parent=hit.Parent.Torso]]
                game:GetService("Debris"):AddItem(r,.5)
                                c=it("ObjectValue")
                        c.Name="creator"
                        c.Value=Player
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
                CRIT=false
                hitDeb=true
                AttackPos=6
        end
        end 
end
 
function MagicRing(brickcolor,cframe,x1,y1,z1,x2,y2,z2,x3,y3,z3)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe*euler(x2,y2,z2)
prt.Size = Vector3.new(5,5,5)
--"http://www.roblox.com/asset/?id=168892465"
local msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=3270017",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,2)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,0.03 do
wait()
Part.CFrame=Part.CFrame
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh)
end
 
function BreakEffect(brickcolor,cframe,x1,y1,z1)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
local msh=mesh("SpecialMesh",prt,"Sphere","",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,2)
coroutine.resume(coroutine.create(function(Part,CF,Numbb,randnumb) 
CF=Part.CFrame
Numbb=0
randnumb=math.random()/10
rand1=math.random()/10
for i=0,1,rand1 do
wait()
CF=CF*cf(0,math.random()/2,0)
--Part.CFrame=Part.CFrame*euler(0.5,0,0)*cf(0,1,0)
Part.CFrame=CF*euler(Numbb,0,0)
Part.Transparency=i
Numbb=Numbb+randnumb
end
Part.Parent=nil
end),prt,CF,Numbb,randnumb)
end
 
function MagicWaveThing(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe
msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=1051557",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,5)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,delay do
wait()
Part.CFrame=Part.CFrame*euler(0,0.7,0)
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh)
end
 
function WaveEffect(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe
msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=20329976",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,2)
coroutine.resume(coroutine.create(function(Part,Mesh) 
for i=0,1,delay do
wait()
Part.CFrame=Part.CFrame*cf(0,y3/2,0)
Part.Transparency=i
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
end
Part.Parent=nil
end),prt,msh)
end
 
function StravEffect(brickcolor,cframe,x,y,z,x1,y1,z1,delay)
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
prt.Anchored=true
prt.CFrame=cframe*cf(x,y,z)
msh=mesh("SpecialMesh",prt,"FileMesh","rbxassetid://168892363",vt(0,0,0),vt(x1,y1,z1))
game:GetService("Debris"):AddItem(prt,5)
coroutine.resume(coroutine.create(function(Part,Mesh,ex,why,zee) 
local num=math.random()
local num2=math.random(-3,2)+math.random()
local numm=0
for i=0,1,delay*2 do
swait()
Part.CFrame=cframe*euler(0,numm*num*10,0)*cf(ex,why,zee)*cf(-i*10,num2,0)
Part.Transparency=i
numm=numm+0.01
end
Part.Parent=nil
Mesh.Parent=nil
end),prt,msh,x,y,z)
end
 
function dmgstart(dmg,what)
        hitcon = what.Touched:connect(function(hit)
                local hum = hit.Parent:FindFirstChild("Humanoid")
                if hum and not hum:IsDescendantOf(Character) then
                        hum:TakeDamage(dmg)
                end
        end)
end
 
function dmgstop()
        hitcon:disconnect()
end
 
user=game.Players.localPlayer
        char=user.Character
        mouse=user:GetMouse()
        m=Instance.new('Model',char)                
                
        blocks = {}
        function Part(Type, Parent, Name, Transparency, Reflectance, Size, CFrame, Material, BrickColor3)
                prt                                 = Instance.new(Type,Parent)
                prt.Name                         = Name
                prt.FormFactor                = "Custom"
                prt.Transparency         = Transparency
                prt.Reflectance         = Reflectance
                prt.Size                         = Size
                prt.CFrame                         = CFrame
                prt.Material                 = Material
                prt.TopSurface                 = 'SmoothNoOutlines'
                prt.BottomSurface         = 'SmoothNoOutlines'
                prt.LeftSurface         = 'SmoothNoOutlines'
                prt.RightSurface         = 'SmoothNoOutlines'
                prt.FrontSurface         = 'SmoothNoOutlines'
                prt.BackSurface          = 'SmoothNoOutlines'
                prt.BrickColor                 = BrickColor.new(tostring(BrickColor3))
                prt.Anchored                 = false
                prt.CanCollide                 = false
                table.insert(blocks, prt)
                return #blocks
        end
        
        function weldBetween(a, b)
            weld = Instance.new("ManualWeld")
            weld.Part0 = a
            weld.Part1 = b
            weld.C0 = CFrame.new()
            weld.C1 = b.CFrame:inverse() * a.CFrame
            weld.Parent = a
            return weld;
        end
 
        local function CFrameFromTopBack(at, top, back)
local right = top:Cross(back)
return CFrame.new(at.x, at.y, at.z,
right.x, top.x, back.x,
right.y, top.y, back.y,
right.z, top.z, back.z)
end
 
function Triangle(a, b, c)
local edg1 = (c-a):Dot((b-a).unit)
local edg2 = (a-b):Dot((c-b).unit)
local edg3 = (b-c):Dot((a-c).unit)
if edg1 <= (b-a).magnitude and edg1 >= 0 then
a, b, c = a, b, c
elseif edg2 <= (c-b).magnitude and edg2 >= 0 then
a, b, c = b, c, a
elseif edg3 <= (a-c).magnitude and edg3 >= 0 then
a, b, c = c, a, b
else
assert(false, "unreachable")
end
 
local len1 = (c-a):Dot((b-a).unit)
local len2 = (b-a).magnitude - len1
local width = (a + (b-a).unit*len1 - c).magnitude
 
local maincf = CFrameFromTopBack(a, (b-a):Cross(c-b).unit, -(b-a).unit)
 
local list = {}
 
if len1 > 0.01 then
local w1 = Instance.new('WedgePart', m)
game:GetService("Debris"):AddItem(w1,5)
w1.Material = "SmoothPlastic"
w1.FormFactor = 'Custom'
w1.BrickColor = BrickColor.new("Toothpaste")
w1.Transparency = 0
w1.Reflectance = 0
w1.Material = "SmoothPlastic"
w1.CanCollide = false
NoOutline(w1)
local sz = Vector3.new(0.2, width, len1)
w1.Size = sz
local sp = Instance.new("SpecialMesh",w1)
sp.MeshType = "Wedge"
sp.Scale = Vector3.new(0,1,1) * sz/w1.Size
w1:BreakJoints()
w1.Anchored = true
w1.Parent = workspace
w1.Transparency = 0.7
table.insert(Effects,{w1,"Disappear",.01})
w1.CFrame = maincf*CFrame.Angles(math.pi,0,math.pi/2)*CFrame.new(0,width/2,len1/2)
table.insert(list,w1)
end
 
if len2 > 0.01 then
local w2 = Instance.new('WedgePart', m)
game:GetService("Debris"):AddItem(w2,5)
w2.Material = "SmoothPlastic"
w2.FormFactor = 'Custom'
w2.BrickColor = BrickColor.new("Toothpaste")
w2.Transparency = 0
w2.Reflectance = 0
w2.Material = "SmoothPlastic"
w2.CanCollide = false
NoOutline(w2)
local sz = Vector3.new(0.2, width, len2)
w2.Size = sz
local sp = Instance.new("SpecialMesh",w2)
sp.MeshType = "Wedge"
sp.Scale = Vector3.new(0,1,1) * sz/w2.Size
w2:BreakJoints()
w2.Anchored = true
w2.Parent = workspace
w2.Transparency = 0.7
table.insert(Effects,{w2,"Disappear",.01})
w2.CFrame = maincf*CFrame.Angles(math.pi,math.pi,-math.pi/2)*CFrame.new(0,width/2,-len1 - len2/2)
table.insert(list,w2)
end
return unpack(list)
end
 
function NoOutline(Part)
        Part.TopSurface,Part.BottomSurface,Part.LeftSurface,Part.RightSurface,Part.FrontSurface,Part.BackSurface = 10,10,10,10,10,10
end
        
 
local Handle  = Instance.new("Part", m)
                        Handle:BreakJoints()
                        Handle.TopSurface = "Smooth"
                        Handle.Material = "SmoothPlastic"
                        Handle.Name = 'Handle'
                        Handle.Transparency = 0                        Handle.BottomSurface = "Smooth"
                        Handle.FormFactor = "Custom" Handle.CanCollide = false
                        Handle.BrickColor = BrickColor.new("Really black")
                        Handle.Size = Vector3.new(2.31999993, 0.34799999, 0.200000003)
                            local Handleweld = Instance.new("ManualWeld")
   Handleweld.Part0 = char["Torso"]
   Handleweld.Part1 = Handle  Handleweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Handleweld.C1 = CFrame.new(0.0648193359, -0.791286469, -0.906871796, 0.707106709, 0.70710665, -3.06183203e-008, -5.06046831e-008, 9.39054843e-008, 0.999991417, 0.707100689, -0.707100689, 1.02184011e-007)
    Handleweld.Parent = char["Torso"]
                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.34799999, 0.200000003, 0.34799999)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697142124, -0.240707397, 0.697052002, 0.707106292, -6.45096577e-007, -0.707100093, 7.29660428e-007, 0.999991119, -4.4702773e-008, 0.707106292, -4.72456946e-007, 0.707100153)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.898999929, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(3.81469727e-006, -0.232005119, 1.97199249, 0.999999762, -2.87769808e-013, 5.96046448e-008, 5.25801624e-013, 0.999991417, 2.84217094e-014, 0, -1.17239551e-013, 0.999991238)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 0.579999983)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Really black")
                        Part.Size = Vector3.new(1.15999997, 0.200000003, 1.15999997)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697060108, -0.237798691, 0.696979523, 0.707100153, -7.8854832e-008, -0.707074642, 6.79929997e-008, 0.999963224, -4.47018209e-008, 0.707100153, -2.54248249e-008, 0.707074702)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.696000099, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(0.200000003, 0.200000003, 2.0880003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-1.21799088, -0.231980324, 0.985839844, 0.999999762, 5.87768056e-010, 1.80602074e-005, -5.86997118e-010, 0.999974251, -6.33293951e-009, -1.80006027e-005, 6.33261976e-009, 0.99997437)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.200000003, 0.34799999, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(0.000141143799, 1.8119812e-005, -1.21799469, 1.81794167e-005, -1.78968406e-007, -0.999964833, 6.0702348e-007, 0.999964714, -1.78957677e-007, 0.999999702, -6.06998185e-007, 1.82688236e-005)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 1, 0.579999983)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(0.200000003, 0.200000003, 2.0880003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-1.21799469, 0.232003212, 0.985847473, 0.999999762, 5.66021896e-010, 1.80602074e-005, -5.65410829e-010, 0.999973297, -6.33274055e-009, -1.80006027e-005, 6.3324741e-009, 0.999973238)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Mid gray")
                        Part.Size = Vector3.new(2.31999969, 0.200000003, 1.8560003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(3.81469727e-006, -0.115989685, 0.985801697, 0.999999762, 6.05332673e-010, 1.80602074e-005, -6.04796213e-010, 0.999982834, -6.33284003e-009, -1.80006027e-005, 6.33262687e-009, 0.999982953)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Institutional white")
                        Part.Size = Vector3.new(0.579999983, 0.200000003, 0.579999983)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(1.52587891e-005, 0.226189613, 0.985958099, 0.99999094, -4.17435785e-007, -8.94069672e-008, 4.17436127e-007, 0.999991119, 2.08614694e-007, -2.98023224e-008, -2.83119846e-007, 0.999982476)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.811999977, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Institutional white")
                        Part.Size = Vector3.new(0.579999983, 0.200000003, 0.579999983)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(1.52587891e-005, -0.237810135, 0.985958099, 0.99999094, -4.17435785e-007, -8.94069672e-008, 4.17436127e-007, 0.999991119, 2.08614694e-007, -2.98023224e-008, -2.83119846e-007, 0.999982476)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.811999977, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Really black")
                        Part.Size = Vector3.new(1.15999997, 0.200000003, 1.15999997)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.985813141, -0.237781525, 0, 1.80006027e-005, 1.57576963e-007, -0.999979973, 8.91885605e-008, 0.99998039, 2.61884452e-007, 0.999999166, -8.91910901e-008, 1.80602074e-005)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.69599998, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.34799999, 0.200000003, 0.34799999)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-5.7220459e-005, 0.223287582, 0.985862732, 0.999999285, -4.17447836e-007, 5.96046448e-008, 4.17451417e-007, 0.999991119, 2.08614694e-007, 8.94069672e-008, -8.94065408e-008, 0.999990642)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.898999929, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Really black")
                        Part.Size = Vector3.new(1.15999997, 0.200000003, 1.15999997)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.985980988, 0.22618866, 0, -8.94069672e-008, 1.63911707e-007, -0.999990642, 8.97813663e-008, 0.999991119, 2.68218798e-007, 0.999999285, -8.97803574e-008, 5.96046448e-008)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.69599998, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Really black")
                        Part.Size = Vector3.new(1.15999997, 0.200000003, 1.15999997)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697110176, 0.226187706, 0.697032928, 0.707100391, -7.8857461e-008, -0.707094431, 6.79927936e-008, 0.999991119, -4.4702837e-008, 0.707100332, -2.54258214e-008, 0.707094312)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.696000099, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Institutional white")
                        Part.Size = Vector3.new(0.579999983, 0.200000003, 0.579999983)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697163582, 0.226187706, 0.697189331, 0.707100332, -7.88574468e-008, -0.707094491, 6.7967342e-008, 0.999991119, -4.47028512e-008, 0.707100451, 4.37624692e-009, 0.707094193)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.812000036, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.34799999, 0.200000003, 0.34799999)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-5.7220459e-005, -0.240706444, 0.985862732, 0.999999285, -4.17447836e-007, 5.96046448e-008, 4.17451417e-007, 0.999991119, 2.08614694e-007, 8.94069672e-008, -8.94065408e-008, 0.999990642)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.898999929, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(3.81469727e-006, 0.23197937, -1.52587891e-005, 0.999999762, 2.23820962e-013, 5.96046448e-008, 7.10542736e-015, 0.999991417, -1.03028697e-013, 0, 1.0658141e-014, 0.999991238)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 0.579999983)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Institutional white")
                        Part.Size = Vector3.new(0.579999983, 0.200000003, 0.579999983)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697163105, -0.237812042, 0.697189331, 0.707100332, -7.88574468e-008, -0.707094491, 6.7967342e-008, 0.999991119, -4.47028512e-008, 0.707100451, 4.37624692e-009, 0.707094193)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.812000036, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Navy blue")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 1.85600007)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(0, 0.232005119, 0.985790253, 0.999999762, 6.06398487e-010, 1.80602074e-005, -6.05488992e-010, 0.999969959, -6.3331953e-009, -1.80006027e-005, 6.33281516e-009, 0.99996984)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.34799999, 0.200000003, 0.34799999)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-0.697142363, 0.223291397, 0.697052002, 0.707106292, -6.45096577e-007, -0.707100093, 7.29660428e-007, 0.999991119, -4.4702773e-008, 0.707106292, -4.72456946e-007, 0.707100153)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.898999929, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Mid gray")
                        Part.Size = Vector3.new(2.31999969, 0.200000003, 1.8560003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(0, 0.115994453, 0.985679626, 0.999999762, 6.06839023e-010, 1.80602074e-005, -6.06164008e-010, 0.999978542, -6.33337294e-009, -1.79708004e-005, 6.33308517e-009, 0.999978423)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Mid gray")
                        Part.Size = Vector3.new(2.31999969, 0.200000003, 1.8560003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(0, -5.7220459e-006, 0.985614777, 0.999999762, 6.06938499e-010, 1.80602074e-005, -6.06267037e-010, 0.999978542, -6.33343333e-009, -1.79708004e-005, 6.33315622e-009, 0.999978423)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("Navy blue")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 1.85600007)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-3.81469727e-006, -0.231994629, 0.98563385, 0.999999762, 5.88961768e-010, 1.80602074e-005, -5.88052274e-010, 0.999969959, -6.33351505e-009, -1.80006027e-005, 6.3331278e-009, 0.99996984)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(-7.62939453e-006, -0.231983185, -0.000392913818, 0.999999762, 5.89174931e-010, 1.80602074e-005, -5.88627813e-010, 0.999982834, -6.33369623e-009, -1.79708004e-005, 6.33347597e-009, 0.999982774)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 0.579999983)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("New Yeller")
                        Part.Size = Vector3.new(0.200000003, 0.34799999, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(0.000408172607, 1.71661377e-005, 1.2179985, 1.81794167e-005, -1.78972357e-007, -0.999982238, 6.07028539e-007, 0.999982357, -1.78961514e-007, 0.999999702, -6.07014329e-007, 1.82688236e-005)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 1, 0.579999983)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(0.200000003, 0.200000003, 2.0880003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(1.21799469, -0.231983185, 0.985591888, 0.999999762, 5.89174931e-010, 1.80602074e-005, -5.88627813e-010, 0.999982834, -6.33369623e-009, -1.79708004e-005, 6.33347597e-009, 0.999982774)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(0.200000003, 0.200000003, 2.0880003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(1.21799469, 0.232002258, 0.985588074, 0.999999762, 5.78641135e-010, 1.80602074e-005, -5.78168624e-010, 0.999980927, -6.33353991e-009, -1.79708004e-005, 6.33334807e-009, 0.999980807)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(0.579999983, 0.579999983, 1)
                                
local Part  = Instance.new("Part", m)
                        Part:BreakJoints()
                        Part.TopSurface = "Smooth"
                        Part.Material = "SmoothPlastic"
                        Part.Name = 'Part'
                        Part.Transparency = 0                        Part.BottomSurface = "Smooth"
                        Part.FormFactor = "Custom" Part.CanCollide = false
                        Part.BrickColor = BrickColor.new("White")
                        Part.Size = Vector3.new(2.31999993, 0.200000003, 0.200000003)
                            local Partweld = Instance.new("ManualWeld")
   Partweld.Part0 =  Handle   Partweld.Part1 = Part  Partweld.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
   Partweld.C1 = CFrame.new(3.81469727e-006, 0.231988907, 1.97200775, 0.999999762, 1.69357861e-011, 5.96046448e-008, -1.6701307e-011, 0.999991179, 2.27373675e-013, 2.98023224e-008, -3.23296945e-013, 0.99999094)
    Partweld.Parent = Part                
                                        local PartMesh = Instance.new("BlockMesh",Part)
                                PartMesh.Name = "Mesh"
                                PartMesh.Offset = Vector3.new(0, 0, 0)
                                PartMesh.Scale = Vector3.new(1, 0.579999983, 0.579999983)
                                
                                        local HandleMesh = Instance.new("BlockMesh",Handle)
                                HandleMesh.Name = "Mesh"
                                HandleMesh.Offset = Vector3.new(0, 0, 0)
                                HandleMesh.Scale = Vector3.new(1, 1, 0.579999983)
 
function damage(hit,Damage,Knockback)
        if hit.Parent==nil then return end
        local CPlayer=bin 
        local h=hit.Parent:FindFirstChild("Humanoid")
        if h~=nil and hit.Parent.Name~=char.Name and hit.Parent:FindFirstChild("Torso")~=nil then
                if attackdebounce == false then 
                        attackdebounce = true
                        coroutine.resume(coroutine.create(function()
                                wait(0.2)
                                attackdebounce = false
                        end)) 
                        Damage=Damage
                        local c=Instance.new("ObjectValue")
                        c.Name="creator"
                        c.Value=game.Players.LocalPlayer
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
                        Damage=Damage+math.random(0,10)
                        h.Health=h.Health-Damage
                        local vp=Instance.new("BodyVelocity")
                        vp.P=500
                        vp.maxForce=Vector3.new(math.huge,0,math.huge)
                        vp.velocity=char.HumanoidRootPart.CFrame.lookVector*Knockback+char.HumanoidRootPart.Velocity/1.05
                        if Knockback>0 then
                                vp.Parent=hit.Parent.Torso
                        end
                        game:GetService("Debris"):AddItem(vp,.25)
                        game:GetService("Debris"):AddItem(r,.5)
                        c=Instance.new("ObjectValue")
                        c.Name="creator"
                        c.Value=plr
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
                end
        end 
end
 
Damagefunc=function(hit,minim,maxim,knockback,Type,Property,Delay,KnockbackType,decreaseblock)
        if hit.Parent==nil then
                return
        end
        h=hit.Parent:FindFirstChild("Humanoid")
        for _,v in pairs(hit.Parent:children()) do
        if v:IsA("Humanoid") then
        h=v
        end
        end
        if hit.Parent.Parent:FindFirstChild("Torso")~=nil then
        h=hit.Parent.Parent:FindFirstChild("Humanoid")
        end
        if hit.Parent.className=="Hat" then
        hit=hit.Parent.Parent:findFirstChild("Head")
        end
        if h~=nil and hit.Parent.Name~=Character.Name and hit.Parent:FindFirstChild("Torso")~=nil then
        if hit.Parent:findFirstChild("DebounceHit")~=nil then if hit.Parent.DebounceHit.Value==true then return end end
        --[[                if game.Players:GetPlayerFromCharacter(hit.Parent)~=nil then
                        return
                end]]
--                        hs(hit,1.2) 
                        c=Instance.new("ObjectValue")
                        c.Name="creator"
                        c.Value=game:service("Players").LocalPlayer
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
                Damage=math.random(minim,maxim)
--                h:TakeDamage(Damage)
                blocked=false
                block=hit.Parent:findFirstChild("Block")
                if block~=nil then
                print(block.className)
                if block.className=="NumberValue" then
                if block.Value>0 then
                blocked=true
                if decreaseblock==nil then
                block.Value=block.Value-1
                end
                end
                end
                if block.className=="IntValue" then
                if block.Value>0 then
                blocked=true
                if decreaseblock~=nil then
                block.Value=block.Value-1
                end
                end
                end
                end
                if blocked==false then
--                h:TakeDamage(Damage)
                h.Health=h.Health-Damage
                showDamage(hit.Parent,Damage,.5,BrickColor.new("Navy blue"))
                else
                h.Health=h.Health-(Damage/2)
                showDamage(hit.Parent,Damage/2,.5,BrickColor.new("Bright blue"))
                end
                if Type=="Knockdown" then
                hum=hit.Parent.Humanoid
hum.PlatformStand=true
coroutine.resume(coroutine.create(function(HHumanoid)
swait(1)
HHumanoid.PlatformStand=false
end),hum)
                local angle=(hit.Position-(Property.Position+Vector3.new(0,0,0))).unit
--hit.CFrame=CFrame.new(hit.Position,Vector3.new(angle.x,hit.Position.y,angle.z))*CFrame.fromEulerAnglesXYZ(math.pi/4,0,0)
local bodvol=Instance.new("BodyVelocity")
bodvol.velocity=angle*knockback
bodvol.P=5000
bodvol.maxForce=Vector3.new(8e+003, 8e+003, 8e+003)
bodvol.Parent=hit
rl=Instance.new("BodyAngularVelocity")
rl.P=3000
rl.maxTorque=Vector3.new(500000,500000,500000)*50000000000000
rl.angularvelocity=Vector3.new(math.random(-10,10),math.random(-10,10),math.random(-10,10))
rl.Parent=hit
game:GetService("Debris"):AddItem(bodvol,.5)
game:GetService("Debris"):AddItem(rl,.5)
                elseif Type=="Normal" then
                vp=Instance.new("BodyVelocity")
                vp.P=500
                vp.maxForce=Vector3.new(math.huge,0,math.huge)
--                vp.velocity=Character.Torso.CFrame.lookVector*Knockback
                if KnockbackType==1 then
                vp.velocity=Property.CFrame.lookVector*knockback+Property.Velocity/1.05
                elseif KnockbackType==2 then
                vp.velocity=Property.CFrame.lookVector*knockback
                end
                if knockback>0 then
                        vp.Parent=hit.Parent.Torso
                end
                game:GetService("Debris"):AddItem(vp,.5)
                elseif Type=="Up" then
                local bodyVelocity=Instance.new("BodyVelocity")
                bodyVelocity.velocity=vt(0,60,0)
                bodyVelocity.P=5000
                bodyVelocity.maxForce=Vector3.new(8e+003, 8e+003, 8e+003)
                bodyVelocity.Parent=hit
                game:GetService("Debris"):AddItem(bodyVelocity,1)
                rl=Instance.new("BodyAngularVelocity")
                rl.P=3000
                rl.maxTorque=Vector3.new(500000,500000,500000)*50000000000000
                rl.angularvelocity=Vector3.new(math.random(-30,30),math.random(-30,30),math.random(-30,30))
                rl.Parent=hit
                game:GetService("Debris"):AddItem(rl,.5)
                elseif Type=="Snare" then
                bp=Instance.new("BodyPosition")
                bp.P=2000
                bp.D=100
                bp.maxForce=Vector3.new(math.huge,math.huge,math.huge)
                bp.position=hit.Parent.Torso.Position
                bp.Parent=hit.Parent.Torso
                game:GetService("Debris"):AddItem(bp,1)
                elseif Type=="Target" then
                if Targetting==false then
                ZTarget=hit.Parent.Torso
                coroutine.resume(coroutine.create(function(Part) 
                so("http://www.roblox.com/asset/?id=15666462",Part,1,1.5) 
                swait(5)
                so("http://www.roblox.com/asset/?id=15666462",Part,1,1.5) 
                end),ZTarget)
                TargHum=ZTarget.Parent:findFirstChild("Humanoid")
                targetgui=Instance.new("BillboardGui")
                targetgui.Parent=ZTarget
                targetgui.Size=UDim2.new(10,100,10,100)
                targ=Instance.new("ImageLabel")
                targ.Parent=targetgui
                targ.BackgroundTransparency=1
                targ.Image="rbxassetid://4834067"
                targ.Size=UDim2.new(1,0,1,0)
                cam.CameraType="Scriptable"
                cam.CoordinateFrame=CFrame.new(Head.CFrame.p,ZTarget.Position)
                dir=Vector3.new(cam.CoordinateFrame.lookVector.x,0,cam.CoordinateFrame.lookVector.z)
                workspace.CurrentCamera.CoordinateFrame=CFrame.new(Head.CFrame.p,ZTarget.Position)
                Targetting=true
                RocketTarget=ZTarget
                for i=1,Property do
                --while Targetting==true and Humanoid.Health>0 and Character.Parent~=nil do
                if Humanoid.Health>0 and Character.Parent~=nil and TargHum.Health>0 and TargHum.Parent~=nil and Targetting==true then
                swait()
                end
                --workspace.CurrentCamera.CoordinateFrame=CFrame.new(Head.CFrame.p,Head.CFrame.p+rmdir*100)
                cam.CoordinateFrame=CFrame.new(Head.CFrame.p,ZTarget.Position)
                dir=Vector3.new(cam.CoordinateFrame.lookVector.x,0,cam.CoordinateFrame.lookVector.z)
                cam.CoordinateFrame=CFrame.new(Head.CFrame.p,ZTarget.Position)*cf(0,5,10)*euler(-0.3,0,0)
                end
                Targetting=false
                RocketTarget=nil
                targetgui.Parent=nil
                cam.CameraType="Custom"
                end
                end
                        debounce=Instance.new("BoolValue")
                        debounce.Name="DebounceHit"
                        debounce.Parent=hit.Parent
                        debounce.Value=true
                        game:GetService("Debris"):AddItem(debounce,Delay)
                        c=Instance.new("ObjectValue")
                        c.Name="creator"
                        c.Value=Player
                        c.Parent=h
                        game:GetService("Debris"):AddItem(c,.5)
                CRIT=false
                hitDeb=true
                AttackPos=6
        end
end
 
showDamage=function(Char,Dealt,du,Color)
        m=Instance.new("Model")
        m.Name=tostring(Dealt)
        h=Instance.new("Humanoid")
        h.Health=0
        h.MaxHealth=0
        h.Parent=m
        c=Instance.new("Part")
        c.Transparency=0
        c.BrickColor=Color
        c.Name="Head"
        c.TopSurface=0
        c.BottomSurface=0
        c.formFactor="Plate"
        c.Size=Vector3.new(1,.4,1)
        ms=Instance.new("CylinderMesh")
        ms.Scale=Vector3.new(.8,.8,.8)
        if CRIT==true then
                ms.Scale=Vector3.new(1,1.25,1)
        end
        ms.Parent=c
        c.Reflectance=0
        Instance.new("BodyGyro").Parent=c
        c.Parent=m
        if Char:findFirstChild("Head")~=nil then
        c.CFrame=CFrame.new(Char["Head"].CFrame.p+Vector3.new(0,1.5,0))
        elseif Char.Parent:findFirstChild("Head")~=nil then
        c.CFrame=CFrame.new(Char.Parent["Head"].CFrame.p+Vector3.new(0,1.5,0))
        end
        f=Instance.new("BodyPosition")
        f.P=2000
        f.D=100
        f.maxForce=Vector3.new(math.huge,math.huge,math.huge)
        f.position=c.Position+Vector3.new(0,3,0)
        f.Parent=c
        game:GetService("Debris"):AddItem(m,.5+du)
        c.CanCollide=false
        m.Parent=workspace
        c.CanCollide=false
end
 
function UnCloak()
so("http://roblox.com/asset/?id=2767090",Torso,1,1.1) 
Face.Parent=Head 
cloaked=false
        for _,v in pairs(Torso.Parent:children()) do
                if v.className=="Part" and v.Name~="HumanoidRootPart" then
                coroutine.resume(coroutine.create(function() 
                for i=0,1,0.1 do
                wait()
                v.Transparency=v.Transparency-0.1
                end
                v.Transparency=0
                end))
                end
                if v.className=="Hat" then
                hatp=v.Handle
                coroutine.resume(coroutine.create(function(derp) 
                for i=0,1,0.1 do
                wait()
                derp.Transparency=derp.Transparency-0.1
                end
                derp.Transparency=0
                end),hatp)
                end
        end
        for _,v in pairs(blocks) do
                if v.className=="Part" and v.Name~="Torso" and v.Name~='tip' then
                coroutine.resume(coroutine.create(function() 
                for i=0,1,0.1 do
                wait()
                v.Transparency=v.Transparency-0.1
                end
                v.Transparency=0
                end))
                v.Transparency=0
                end
        end
end
meshids = {["penguin"] = 15853464, ["ring"] = 3270017,
["spike"] = 1033714,["cone"] = 1082802,["crown"] = 20329976,["crossbow"] = 15886761,
["cloud"] = 1095708,["mjolnir"] = 1279013,["diamond"] = 9756362, ["hand"] = 37241605,
["fist"] = 65322375,["skull"] = 36869983,["totem"] = 35624068,["spikeb"] = 9982590,["dragon"] = 58430372,["fish"] = 31221717, ["coffee"] = 15929962,["spiral"] = 1051557,
["ramen"] = 19380188,["lightning"] = 72583597,["bullet"]=2697549}---some meshids
textureids = {["cone"] = 1082804,["rainbow"] = 28488599,["fish"] = 31221733, ["coffee"] = 24181455,["monster"] = 33366441,["ramen"] = 19380153}
soundids = {["bell"] = 20005706,["flintlock"] = 13510352,["falcon"] = 1387390,['sensa'] = 4700455,
['midas'] = 17385513;
['spark'] = 10756118;
['boom'] = 10730819;
['plank'] = 10548112;
['harmonica1'] = 33069371;
['harmonica2'] = 33069412;
['thump'] = 10730819;
}
 
cfn,ang,v3n,ud2n,V2 = CFrame.new,CFrame.Angles,Vector3.new,UDim2.new,Vector2.new
 
M = {["R"] = function(a,b) return math.random(a,b) end,
["Cos"] = function(a) return math.cos(a) end,
["Sin"] = function(a) return math.sin(a) end,
["D"] = function(a) return math.rad(a) end
}
 
T = {["P"] = function(x,y,z,color,transparency,cancollide,anchored,parent,typee)
if typee == 'wedge' then
c = Instance.new("WedgePart",m)
elseif typee == 'seat' then
c = Instance.new("Seat",m)
elseif typee == 'vseat' then
c = Instance.new("VehicleSeat",m)
else
c = Instance.new("Part",m)
end
c.TopSurface,c.BottomSurface = 0,0
c.Locked = true
c.formFactor = "Custom"
c.Size = Vector3.new(x,y,z)
if color ~= "random" then
c.BrickColor = BrickColor.new(color)
else c.BrickColor = BrickColor:random()
end
c.Transparency = transparency
c.CanCollide = cancollide
if anchored ~= nil then c.Anchored = anchored end
if parent ~= nil then c.Parent = parent end
return c
end
,
["C"] = function(func) coroutine.resume(coroutine.create(func)) end
,
["W"] = function(part0,part1,x,y,z,rx,ry,rz,parent)
w = Instance.new("Motor",m)
if parent ~= nil then w.Parent = parent end
w.Part0,w.Part1 = part0,part1
w.C1 = CFrame.new(x,y,z) * CFrame.Angles(rx,ry,rz)
return w
end
,
["BG"] = function(parent)
local c = Instance.new("BodyGyro",parent)
c.P = 20e+003
c.cframe = parent.CFrame
c.maxTorque = Vector3.new(c.P,c.P,c.P)
return c
end
,
["BP"] = function(parent,position)
local bp = Instance.new("BodyPosition",parent)
bp.maxForce = Vector3.new()*math.huge
bp.position = position
return bp
end
,
["F"] = function(parent,size,heat,color,secondcolor,enabled)
f = Instance.new("Fire",parent)
f.Size = size
f.Heat = heat
if enabled ~= nil then f.Enabled = enabled end
if color ~= nil then f.Color = BrickColor.new(color).Color end
if secondcolor ~= nil then f.SecondaryColor = BrickColor.new(secondcolor).Color end
return f
end
,
["FM"] = function(parent,meshid,x,y,z,meshtexture)
if meshid == "cylinder" then
mesh = Instance.new("CylinderMesh",parent)
mesh.Scale = Vector3.new(x,y,z)
return mesh
elseif meshid == 'block' then
mesh = Instance.new("BlockMesh",parent)
mesh.Scale = Vector3.new(x,y,z)
return mesh
end
mesh = Instance.new("SpecialMesh",parent)
if meshid == 'wedge' then
mesh.MeshType = 'Wedge'
elseif meshid == 'sphere' then
mesh.MeshType = 3
elseif type(meshid) == "number" then
mesh.MeshId = "rbxassetid://"..meshid
else
mesh.MeshId = "rbxassetid://"..meshids[meshid]
end
mesh.Scale = Vector3.new(x,y,z)
if meshtexture then
if type(meshtexture) == "number" then mesh.TextureId = "rbxassetid://"..meshtexture else
mesh.TextureId = "rbxassetid://"..textureids[meshtexture] end
end
return mesh
end,
["Dec"] = function(parent,face,id,transparency)
c = Instance.new("Decal",parent)
c.Face = face
c.Texture = id
if transparency then c.Transparency = transparency end
return c
end,
["S"] = function(id,pitch,volume,parent)
cur = nil
found = false
if type(id) == 'string' then
for i,v in pairs(char.Head:children()) do
if v:IsA("Sound") and v.Name == id and not found then
cur = v
if parent then cur = v:Clone() cur.Parent = parent end
cur.Pitch = pitch
if volume then cur.Volume = volume end
cur:Play()
found = true
return cur
end
end
elseif type(id) == 'number' then
local a = char.Head:FindFirstChild('exteo')
a.SoundId = 'rbxassetid://'..id
a.Pitch = pitch
if volume then a.Volume = volume end
a:Play()
return a
end
end
}
 
function damage(hit,amount,delay)
for i,v in pairs(hit:children()) do
if v:IsA("Humanoid") and v.Parent ~= char then
if delay then
local found = v:FindFirstChild('tag')
if not found then
local a = Instance.new("StringValue",v)
a.Name = 'tag ur it'
game:service'Debris':AddItem(a,delay)
v.Health = v.Health - amount
end
else v.Health = v.Health - amount
end
end
end
end
 
function lightning(startpos,endpos,times,offse,livetime,col,dmg)
local curpos = startpos
for i = 1,times do
local mag = (startpos-endpos).magnitude
local offs = {-offse,offse}
local offset = v3n(offs[M.R(1,2)],offs[M.R(1,2)],offs[M.R(1,2)])
laz = T.P(.1,.1,mag/times,col,0,false,true,m)
laz.Parent=m
laz.Transparency=.5
if dmg then laz.Touched:connect(function(hit) dmgstart(laz,5) end) end
local apos = (cfn(curpos,endpos)*cfn(0,0,-mag/times)).p+offset
if times == i then
local mag2 = (curpos-endpos).magnitude
laz.Size = v3n(.1,.1,mag2)
laz.CFrame = cfn(curpos,endpos)*cfn(0,0,-mag2/2)
else
laz.CFrame = cfn(curpos,apos)*cfn(0,0,-mag/times/2)
end
curpos = laz.CFrame*cfn(0,0,-mag/times/2).p game:service'Debris':AddItem(laz,livetime)
pcall(function()
dmgstop()
end)
end
end
 
function magicring(brickcolor,cframe,x1,y1,z1,x3,y3,z3)
        local prt=part(3,workspace,0,0,brickcolor,"Effect",Vector3.new(0.5,0.5,0.5))
        prt.Anchored=true
        prt.CFrame=cframe
        prt.Touched:connect(function(hit) damage(hit, 10, 10) end)
        local msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=3270017",Vector3.new(0,0,0),Vector3.new(x1,y1,z1))
        coroutine.resume(coroutine.create(function(Part,Mesh) 
                for i=0,1,0.03 do
                        wait()
                        Part.CFrame=Part.CFrame
                        Part.Transparency=i
                        Mesh.Scale=Mesh.Scale+Vector3.new(x3,y3,z3)
                end
                Part.Parent=nil
        end),prt,msh)
end
 
function MagicBlocka(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
        local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
        prt.Anchored=true
        prt.CFrame=cframe
        prt.Transparency=1
        prt.Size = Vector3.new(5,5,5)
        --msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
        game:GetService("Debris"):AddItem(prt,5)
        coroutine.resume(coroutine.create(function(Part,Mesh) 
                for i=0,1,delay do
                        wait()
                        Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
                        Part.Transparency=1
                        --Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
                end
                Part.Parent=nil
                return Part
        end),prt,msh)
        return prt
end
 
function MagniDamage(Part,dmg,knock,Type,base)
 
for _,c in pairs(workspace:children()) do
 
local hum=c:findFirstChild("Humanoid")
 
if hum~=nil then
 
local head=c:findFirstChild("Torso")
 
if head~=nil then
 
local targ=head.Position-Part.Position
 
local mag=targ.magnitude
 
if mag<=dmg and c.Name~=Character.Name then 
 
hum:TakeDamage(dmg)
 
end
 
end
 
end
 
end
 
end
 
function MMMAGIC(part,x1,y1,z1,x2,y2,z2,color) 
pmsh = Instance.new('SpecialMesh')
pmsh.MeshType = 'FileMesh'
pmsh.Scale = Vector3.new(1,1,1)
pmsh.MeshId = 'http://www.roblox.com/Asset/?id=9756362'
S=Instance.new("Part")
S.Material = "SmoothPlastic"
S.Name="Effect"
S.formFactor=0
S.Size=Vector3.new(x1,y1,z1)
S.BrickColor=color
S.Reflectance = 0
S.TopSurface=0
S.BottomSurface=0
S.Transparency=0
S.Anchored=true
S.CanCollide=false
S.CFrame=part.CFrame*CFrame.new(x2,y2,z2)*CFrame.fromEulerAnglesXYZ(math.random(-50,50),math.random(-50,50),math.random(-50,50))
S.Parent=char
pmsh.Parent = S
coroutine.resume(coroutine.create(function(Part,CF) for i=1, 9 do Part.Mesh.Scale = Part.Mesh.Scale + Vector3.new(0.1,0.1,0.1) Part.CFrame=Part.CFrame*CFrame.fromEulerAnglesXYZ(math.random(-50,50),math.random(-50,50),math.random(-50,50)) Part.Transparency=i*.1 wait() end Part.Parent=nil end),S,S.CFrame)
end 
 
function ShockWave(Col,CF)
local Wave = Instance.new("Part", game.Workspace--[[?]])
Wave.Name = "Shockwave"
Wave.BrickColor = BrickColor.new(Col)
Wave.Size = Vector3.new(1, 1, 1)
Wave.CanCollide = false
Wave.Anchored = true
Wave.TopSurface = 0
Wave.BottomSurface = 0
Wave.CFrame = CF
local WaveMesh = Instance.new("SpecialMesh",Wave)
WaveMesh.MeshType = "Sphere"
WaveMesh.Scale = Vector3.new(1,1,1)
Delay(0, function()
                       for i = 1, 10, 1 do
                                local t = 0.5
                            Wave.Size = Vector3.new(1 + i, 1 + i, 1 + i)
                            Wave.CFrame = CF
                            WaveMesh.Scale = Vector3.new(0.5 + t, 0.5 + t, 0.5 + t)
                            Wave.Transparency = t
                            wait()
                        end
                    Wave.Parent = nil
                end)
end
 
function attackone()
        attack=true
        for i=0,1,0.1 do
                swait()
                Torso.Neck.C0=clerp(Torso.Neck.C0,necko*euler(0.1,0,-1.2),.2)
                RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,1.2),.2)
                RW.C0=clerp(RW.C0,cf(1,0.5,-0.5)*euler(.5,1.8,1.5),.2)
                LW.C0=clerp(LW.C0,cf(-1,0.5,-0.5)*euler(1.5,-0.5,.8),.2)
                RH.C0=clerp(RH.C0,RHC0*euler(-.2,0,0),.2)
                LH.C0=clerp(LH.C0,LHC0*euler(-.2,0,0),.2)
        end
        so("http://roblox.com/asset/?id=228343249",Torso,1,1) 
        ShockWave("Navy blue",Torso.CFrame*CFrame.new(10,0,0))
        for i = 1, 4 do
                        magicring(BrickColor.new("New Yeller"),Torso.CFrame*CFrame.new(10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        magicring(BrickColor.new("Navy blue"),Torso.CFrame*CFrame.new(10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        --hiasd=MagicBlocka(BrickColor.new("Black"),Torso.CFrame*CFrame.new(10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        --dmgstart(5,hiasd)
        end
local prt = Instance.new("Part",workspace)
prt.Anchored = true
prt.Size = Vector3.new(5,5,5)
prt.CFrame = Torso.CFrame*CFrame.new(10,0,0)
prt.CanCollide = false
prt.Transparency = 1
MagniDamage(prt,15,"Knockdown",prt)
        for i=0,1,0.1 do
                swait()
                Torso.Neck.C0=clerp(Torso.Neck.C0,necko*euler(0.1,0,1),.2)
                RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,-1),.2)
                --RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*euler(1.2,1.2,0)*euler(-1.5,0,0),.2)
                LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*euler(.2,-.2,-1.4),.2)
        end
        attack=false
        prt:remove()
end
 
function attacktwo()
        attack=true
        for i=0,1,0.1 do
                swait()
                Torso.Neck.C0=clerp(Torso.Neck.C0,necko*euler(0.1,0,1.2),.2)
                RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,-1.2),.2)
                RW.C0=clerp(RW.C0,cf(1,0.5,-0.5)*euler(1.5,0.5,-.8),.2)
                LW.C0=clerp(LW.C0,cf(-1,0.5,-0.5)*euler(.5,-1.8,-1.5),.2)
                --RW.C0=clerp(RW.C0,cf(1,0.5,-0.5)*euler(.5,1.8,1.5),.2)
                --LW.C0=clerp(LW.C0,cf(-1,0.5,-0.5)*euler(1.5,-0.5,.8),.2)
                RH.C0=clerp(RH.C0,RHC0*euler(-.2,0,0),.2)
                LH.C0=clerp(LH.C0,LHC0*euler(-.2,0,0),.2)
        end
        so("http://roblox.com/asset/?id=228343249",Torso,1,1) 
        ShockWave("New Yeller",Torso.CFrame*CFrame.new(-10,0,0))
        for i = 1, 4 do
                        magicring(BrickColor.new("New Yeller"),Torso.CFrame*CFrame.new(-10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        magicring(BrickColor.new("Navy blue"),Torso.CFrame*CFrame.new(-10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        --hiasd=MagicBlocka(BrickColor.new("Black"),Torso.CFrame*CFrame.new(10,0,0)*CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50)),1,1,0.1,1,1,0.05)
                        --dmgstart(5,hiasd)
        end
local prt = Instance.new("Part",workspace)
prt.Anchored = true
prt.Size = Vector3.new(5,5,5)
prt.CFrame = Torso.CFrame*CFrame.new(-10,0,0)
prt.CanCollide = false
prt.Transparency = 1
MagniDamage(prt,15,"Knockdown",prt)
        for i=0,1,0.1 do
                swait()
                Torso.Neck.C0=clerp(Torso.Neck.C0,necko*euler(0.1,0,-1),.2)
                RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,1),.2)
                --RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*euler(1.2,1.2,0)*euler(-1.5,0,0),.2)
                RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*euler(.2,.2,1.4),.2)
        end
        attack=false
        prt:remove()
end
 
function WaveEffect2(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
 
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
 
prt.Anchored=true
 
prt.CFrame=cframe
 
msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=1323306",vt(0,0,0),vt(x1,y1,z1))
 
game:GetService("Debris"):AddItem(prt,2)
 
coroutine.resume(coroutine.create(function(Part,Mesh) 
 
for i=0,1,delay do
 
wait()
 
Part.CFrame=Part.CFrame
 
Part.Transparency=i
 
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
 
end
 
Part.Parent=nil
 
end),prt,msh)
 
end
 
function MagicCylinder(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
 
local prt=part(3,workspace,0,0,brickcolor,"Effect",vt(0.2,0.2,0.2))
 
prt.Anchored=true
 
prt.CFrame=cframe
 
msh=mesh("SpecialMesh",prt,"Head","",vt(0,0,0),vt(x1,y1,z1))
 
game:GetService("Debris"):AddItem(prt,5)
 
coroutine.resume(coroutine.create(function(Part,Mesh) 
 
for i=0,1,delay do
 
wait()
 
Part.CFrame=Part.CFrame
 
Part.Transparency=i
 
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
 
end
 
Part.Parent=nil
 
end),prt,msh)
 
end
 
 
 
function attackthree()
attack = true
for i = 0,1,0.1 do
swait()
RootJoint.C0=clerp(RootJoint.C0,RootCF*angles(math.rad(0),math.rad(0),math.rad(0)),.2)
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*angles(math.rad(-10),math.rad(0),math.rad(0)),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*angles(math.rad(90),math.rad(0),math.rad(20)),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*angles(math.rad(90),math.rad(0),math.rad(-20)),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*angles(math.rad(0),math.rad(90),math.rad(0)),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*angles(math.rad(0),math.rad(-90),math.rad(0)),.2)
end
n=2
local cf2=RootPart.CFrame*cf(0,500,-20)
local ref=part(3,workspace,0,1,BrickColor.new("Navy blue"),"Effect",vt())
ref.CFrame=cf2
ref.Anchored=true
local TheHit=ref.Position+vt(0,-1,0)
local MouseLook=cf((ref.Position+TheHit)/2,TheHit)
local hit,pos = rayCast(ref.Position,MouseLook.lookVector,999,Character)
local ref2=part(3,workspace,0,1,BrickColor.new("Navy blue"),"Effect",vt())
ref2.CFrame=cf(pos)
ref2.Anchored=true
local mag=(ref.Position-pos).magnitude 
MagicCylinder(BrickColor.new("Navy blue"),CFrame.new((ref.Position+pos)/2,pos)*angles(1.57,0,0),5,mag*5,5,1,0,1,0.05)
MagicCircle(BrickColor.new("New Yeller"),ref2.CFrame,15,15,15,3,3,3,0.02)
MagicBlock(BrickColor.new("Navy blue"),ref2.CFrame,15,15,15,2,2,2,0.02)
WaveEffect2(BrickColor.new("New Yeller"),ref2.CFrame,5,5,5,2,2,2,0.05)
magicring(BrickColor.new("New Yeller"),cf(ref2.Position)*euler(1.57,0,0),5,5,5,1,1,1,0.05)
MagniDamage(ref2,30,"Knockdown",ref2)
--so("http://roblox.com/asset/?id=144844438",ref2,1,0.8) 
so("http://roblox.com/asset/?id=235097661",ref2,1,0.9) 
so("http://roblox.com/asset/?id=233091161",ref2,1,0.8) 
game:GetService("Debris"):AddItem(ref,2)
game:GetService("Debris"):AddItem(ref2,2)
for i = 0,1,0.1 do
swait()
RootJoint.C0=clerp(RootJoint.C0,RootCF*angles(math.rad(0),math.rad(0),math.rad(0)),.2)
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*angles(math.rad(10),math.rad(0),math.rad(0)),.2)
RW.C0=clerp(RW.C0,cf(1,0.5,-0.5)*angles(math.rad(90),math.rad(0),math.rad(-50)),.2)
LW.C0=clerp(LW.C0,cf(-1,0.5,-0.5)*angles(math.rad(90),math.rad(0),math.rad(50)),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*angles(math.rad(0),math.rad(90),math.rad(0)),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*angles(math.rad(0),math.rad(-90),math.rad(0)),.2)
end
attack = false
end
 
function TestAttack()
attack = true
for i = 0,1,0.1 do
swait()
RootJoint.C0=clerp(RootJoint.C0,RootCF*angles(math.rad(0),math.rad(0),math.rad(80)),.2)
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*angles(math.rad(0),math.rad(0),math.rad(-70)),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*angles(math.rad(0),math.rad(10),math.rad(90)),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*angles(math.rad(2),math.rad(25),math.rad(-15)),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*angles(math.rad(0),math.rad(90),math.rad(0))*angles(math.rad(-5),math.rad(0),math.rad(0)),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*angles(math.rad(0),math.rad(-90),math.rad(0))*angles(math.rad(-5),math.rad(0),math.rad(0)),.2)
end
local n=2
local n=2
MagicCylinder(BrickColor.new("Really black"),cf(RightLeg.Position+vt(0,4,0)),10,4,10,5,3,5,0.05)
local numb=-8
local basecf=RootPart.CFrame
for i=1,4 do
local cf2=basecf*cf(0,0,numb)
local ref=part(3,workspace,0,1,BrickColor.new("Really black"),"Effect",vt())
ref.CFrame=cf2
ref.Anchored=true
local TheHit=ref.Position+vt(0,-1,0)
local MouseLook=cf((ref.Position+TheHit)/2,TheHit)
local hit,pos = rayCast(ref.Position,MouseLook.lookVector,999,Character)
local ref2=part(3,workspace,0,1,BrickColor.new("Really black"),"Effect",vt())
ref2.CFrame=cf(pos)
ref2.Anchored=true
ShockWave("Navy blue",ref2.CFrame)
MagicWaveThing(BrickColor.new("New Yeller"),ref2.CFrame,0.5,0.5,0.5,1,1,1,0.05)
MagniDamage(ref2,20,"Knockdown",ref2)
so("http://www.roblox.com/asset/?id=233856106",ref2,1,1.5) 
so("http://www.roblox.com/asset/?id=233856115",ref2,1,1.5) 
game:GetService("Debris"):AddItem(ref,2)
game:GetService("Debris"):AddItem(ref2,2)
numb=numb-15
wait(0.4)
end
local n=2
attack = false
end
 
 
mouse.Button1Down:connect(function()
        if attack==false then
                if attacktype==1 then
                        attack=true
                        attacktype=2
                        attackone()
                elseif attacktype==2 then
                        attack=true
                        attacktype=3
                        attacktwo()
                        elseif attacktype==3 then
                        attack=true
                        attacktype=1
                        attackthree()
                end
        end
end)
 
mouse.KeyDown:connect(function(k)
        k=k:lower()
        if k=='q' then
                if attack==false then
                        TestAttack()
                end
        end
end)
 
local sine = 0
local change = 1
local val = 0
 
while true do
swait()
sine = sine + change
local torvel=(RootPart.Velocity*Vector3.new(1,0,1)).magnitude 
local velderp=RootPart.Velocity.y
hitfloor,posfloor=rayCast(RootPart.Position,(CFrame.new(RootPart.Position,RootPart.Position - Vector3.new(0,1,0))).lookVector,4,Character)
if equipped==true or equipped==false then
if attack==false then
idle=idle+1
else
idle=0
end
if idle>=500 then
if attack==false then
--Sheath()
end
end
if RootPart.Velocity.y > 1 and hitfloor==nil then 
Anim="Jump"
if attack==false then
Neck.C0=clerp(Neck.C0,necko*euler(-0.2,0,0),.2)
Neck.C1=clerp(Neck.C1,necko2*euler(0,0,0),.2)
RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,0),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*euler(-.5,0,0.5),.2)
RW.C1=clerp(LW.C1,cf(0,0.5,0)*euler(0,0,0),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*euler(-.5,0,-0.5),.2)
LW.C1=clerp(LW.C1,cf(0,0.5,0)*euler(0,0,0),.2)
RH.C0=clerp(RH.C0,cf(1,-1,-.3)*euler(-0.5,1.57,0)*euler(-.2,0,0),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,-.3)*euler(-0.5,-1.57,0)*euler(-.2,0,0),.2)
--Handleweld.C0=clerp(--Handleweld.C0,cf(0,0,0)*angles(math.rad(0),math.rad(0),math.rad(0)),.2)
end
elseif RootPart.Velocity.y < -1 and hitfloor==nil then 
Anim="Fall"
if attack==false then
Neck.C0=clerp(Neck.C0,necko*euler(0.4,0,0),.2)
Neck.C1=clerp(Neck.C1,necko2*euler(0,0,0),.2)
RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0,0,0),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*euler(0.3,0,0.2),.2)
RW.C1=clerp(LW.C1,cf(0,0.5,0)*euler(0,0,0),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*euler(0.3,0,-0.2),.2)
LW.C1=clerp(LW.C1,cf(0,0.5,0)*euler(0,0,0),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*euler(0.4,1.57,0),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*euler(-0.2,-1.57,0),.2)
--Handleweld.C0=clerp(--Handleweld.C0,cf(0,0,0)*angles(math.rad(0),math.rad(0),math.rad(0)),.2)
end
elseif torvel<1 and hitfloor~=nil then
Anim="Idle"
if attack==false then
RootJoint.C0=clerp(RootJoint.C0,RootCF*angles(math.rad(0),math.rad(0),math.rad(-45)),.2)
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*angles(math.rad(0),math.rad(0),math.rad(45)),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*angles(math.rad(-2),math.rad(-25),math.rad(15)),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*angles(math.rad(2),math.rad(25),math.rad(-15)),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*angles(math.rad(0),math.rad(90),math.rad(0))*angles(math.rad(-5),math.rad(0),math.rad(0)),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*angles(math.rad(0),math.rad(-90),math.rad(0))*angles(math.rad(-5),math.rad(0),math.rad(0)),.2)
--Handleweld.C0=clerp(--Handleweld.C0,cf(0,0,0)*angles(math.rad(-15),math.rad(0),math.rad(0)),.2)
end
elseif torvel>2 and torvel<22 and hitfloor~=nil then
        local idleanim=0
Anim="Walk"
if attack==false then
change=3
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*euler(0,0,0),.2)
RootJoint.C0=clerp(RootJoint.C0,RootCF*euler(0.1,0,0),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*angles(math.rad(-5),math.rad(-25),math.rad(20)),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*angles(math.rad(5),math.rad(25),math.rad(-20)),.2)
RH.C0=clerp(RH.C0,RHC0,.2)
LH.C0=clerp(LH.C0,LHC0,.2)
end
elseif torvel>=22 and hitfloor~=nil then
Anim="Run"
if attack==false then
RootJoint.C0=clerp(RootJoint.C0,RootCF*cf(0,0,0)*angles(math.rad(45),math.rad(0),math.rad(0)),.2)
Torso.Neck.C0=clerp(Torso.Neck.C0,necko*angles(math.rad(-40),math.rad(0),math.rad(0)),.2)
RW.C0=clerp(RW.C0,cf(1.5,0.5,0)*angles(math.rad(-60),math.rad(0),math.rad(0)),.2)
LW.C0=clerp(LW.C0,cf(-1.5,0.5,0)*angles(math.rad(-60),math.rad(0),math.rad(0)),.2)
RH.C0=clerp(RH.C0,cf(1,-1,0)*angles(math.rad(0),math.rad(90),math.rad(0)),.2)
LH.C0=clerp(LH.C0,cf(-1,-1,0)*angles(math.rad(0),math.rad(-90),math.rad(0)),.2)
--Handleweld.C0=clerp(--Handleweld.C0,cf(0,-.5,-.7)*angles(math.rad(-75),math.rad(0),math.rad(0)),.2)
end
end
end
local FireColors = {'Navy blue', 'New Yeller'}
local p = Instance.new('Part', Character.Torso)
p.Transparency=.5
p.BrickColor = BrickColor.new(FireColors[math.random(1,#FireColors)])
p.FormFactor = 'Custom'
p.Size = Vector3.new(.8, .8, .8)
p.CanCollide = false
p.Anchored = true
p.Locked = true
p.CFrame = RightArm.CFrame*CFrame.new(0,-1,0)*CFrame.Angles(math.random(0,3),math.random(0,3),math.random(0,3))
Instance.new('BlockMesh', p)
local p2 = Instance.new('Part', Character.Torso)
p2.Transparency=.5
p2.BrickColor = BrickColor.new(FireColors[math.random(1,#FireColors)])
p2.FormFactor = 'Custom'
p2.Size = Vector3.new(.8, .8, .8)
p2.CanCollide = false
p2.Anchored = true
p2.Locked = true
p2.CFrame = LeftArm.CFrame*CFrame.new(0,-1,0)*CFrame.Angles(math.random(0,3),math.random(0,3),math.random(0,3))
Instance.new('BlockMesh', p2)
coroutine.wrap(function()
    for i = 1, 10 do
        p.Mesh.Scale = p.Mesh.Scale - Vector3.new(.1, .1, .1)
        p.CFrame = p.CFrame * CFrame.new(0, -.15, 0)
        p2.Mesh.Scale = p2.Mesh.Scale - Vector3.new(.1, .1, .1)
        p2.CFrame = p2.CFrame * CFrame.new(0, -.15, 0)
        wait()
    end
end)()
game:service'Debris':AddItem(p, 2)
game:service'Debris':AddItem(p2, 2)
end
--156434034D