Advertisement
lafur

Untitled

Mar 22nd, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do print("FE Compatibility code V2 by Mokiros")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end -- yo this was made by Wulfchow (formerly wulfbug9)
  6. -- i made this in anywhere from 2013 to 2015
  7. -- enjoy this incomplete mess haha
  8.  
  9. CN, CA, V3, BC, C3 = CFrame.new, CFrame.Angles, Vector3.new, BrickColor.new, Color3.new
  10. Ins, Abs, Sin, Cos, Rad, Pi = Instance.new, math.abs, math.sin, math.cos, math.rad, math.pi
  11. Random = function(A)
  12.     return ( math.random() - .5) * 2 * (A or 1)
  13. end
  14. Part = function(Parent, CFrame, Size, Colour, Material, Transparency, Anchored, CanCollide, Type)
  15.     local P = Ins(Type or "Part")
  16.     P.FormFactor = "Custom"
  17.     P.Size = Size
  18.     P.Anchored = Anchored
  19.     P.Material = Material
  20.     P.BrickColor = BC(Colour)
  21.     P.Transparency = Transparency
  22.     P.CanCollide = CanCollide
  23.     P.TopSurface, P.BottomSurface, P.LeftSurface, P.RightSurface, P.FrontSurface, P.BackSurface = 10, 10, 10, 10, 10, 10
  24.     P.CFrame = CFrame
  25.     P.Parent = Parent
  26.     P.Locked = true
  27.     return P
  28. end
  29. Weld = function(P0, P1, C0, C1)
  30.     local W = Ins("Weld", P0)
  31.     W.Part0 = P0
  32.     W.Part1 = P1
  33.     W.C0 = C0 or CN()
  34.     W.C1 = C1 or CN()
  35.     return W
  36. end
  37. New = function(Object, Parent, Data)
  38.     local Object = Ins(Object)
  39.     for Index, Value in pairs(Data or {}) do
  40.         Object[Index] = Value
  41.     end
  42.     Object.Parent = Parent
  43.     return Object
  44. end
  45. GetComplementingColour = function(Colour3)
  46.     local R, G, B = Colour3.r, Colour3.g, Colour3.b
  47.     local NR, NG, NB = R * 255, G * 255, B * 255
  48.     local R2, G2, B2 = Abs(Random(255)), Abs(Random(255)), Abs(Random(255))
  49.     R2, G2, B2 = (R2 + NR) / 2, (G2 + NG) / 2, (B2 + NB) / 2
  50.     return C3(R2 / 255, G2 / 255, B2 / 255)
  51. end
  52. Midpoint = function(CF0, CF1)
  53.     local C0, C1 = {CF0.X, CF0.Y, CF0.Z, CF0:toEulerAnglesXYZ()}, {CF1.X, CF1.Y, CF1.Z, CF1:toEulerAnglesXYZ()}
  54.     for i, v in pairs(C0) do
  55.         C0[i] = (v + C1[i]) / 2
  56.     end
  57.     return CN(C0[1], C0[2], C0[3]) * CA(C0[4], C0[5], C0[6])
  58. end
  59. do -- > Triangle Trail.
  60.     local Trailing = false
  61.     local Last = {
  62.         [1] = nil,
  63.         [2] = nil,
  64.     }
  65.     local TConnect
  66.     local function Modify(Data)
  67.         for i, v in pairs(Data) do
  68.             if i ~= 1 then
  69.                 Data[1][i] = v
  70.             end
  71.         end
  72.         return Data[1]
  73.     end
  74.     local function CFrameFromTopBack(At, Top, Back)
  75.         local Right = Top:Cross(Back)
  76.         return CFrame.new(At.x, At.y, At.z,
  77.             Right.x, Top.x, Back.x,
  78.             Right.y, Top.y, Back.y,
  79.             Right.z, Top.z, Back.z)
  80.     end
  81.     function Triangle(Parent, A, B, C, Colour)
  82.         local P1 = Modify{Instance.new("WedgePart"), Anchored = true, FormFactor = "Custom", TopSurface = 0, BottomSurface = 0, BrickColor = BrickColor.new(Colour),
  83.             Transparency = .3, CanCollide = false,
  84.             BottomSurface = 10, TopSurface = 10, FrontSurface = 10, BackSurface = 10, LeftSurface = 10, RightSurface = 10}
  85.         local P2 = Modify{Instance.new("WedgePart"), Anchored = true, FormFactor = "Custom", TopSurface = 0, BottomSurface = 0, BrickColor = BrickColor.new(Colour),
  86.             Transparency = .3, CanCollide = false,
  87.             BottomSurface = 10, TopSurface = 10, FrontSurface = 10, BackSurface = 10, LeftSurface = 10, RightSurface = 10}
  88.         Modify{Instance.new("SpecialMesh",P1), MeshType = "Wedge", Scale = Vector3.new(0,1,1)}
  89.         Modify{Instance.new("SpecialMesh",P2), MeshType = "Wedge", Scale = Vector3.new(0,1,1)}
  90.         local AB, BC, CA = B-A, C-B, A-C
  91.         local ABM, BCM, CAM = AB.magnitude, BC.magnitude, CA.magnitude
  92.         local Edge1 = math.abs(0.5 + CA:Dot(AB)/(ABM*ABM))
  93.         local Edge2 = math.abs(0.5 + AB:Dot(BC)/(BCM*BCM))
  94.         local Edge3 = math.abs(0.5 + BC:Dot(CA)/(CAM*CAM))
  95.         if Edge1 < Edge2 then
  96.             if Edge1 < Edge3 then
  97.             else
  98.                 A, B, C = C, A, B
  99.                 AB, BC, CA = CA, AB, BC
  100.                 ABM = CAM
  101.             end
  102.         else
  103.             if Edge2 < Edge3 then
  104.                 A, B, C = B, C, A
  105.                 AB, BC, CA = BC, CA, AB
  106.                 ABM = BCM
  107.             else
  108.                 A, B, C = C, A, B
  109.                 AB, BC, CA = CA, AB, BC
  110.                 ABM = CAM
  111.             end
  112.         end
  113.         local Len1 = -CA:Dot(AB)/ABM
  114.         local Len2 = ABM - Len1
  115.         local Width = (CA + AB.unit*Len1).magnitude
  116.         local MainCF = CFrameFromTopBack(A, AB:Cross(BC).unit, -AB.unit)
  117.         P1.Name = "WulfEffect"
  118.         P1.Parent = Parent
  119.         P1.Size = Vector3.new(0.2, Width, Len1)
  120.         P1.CFrame = MainCF * CFrame.Angles(math.pi, 0, math.pi/2) * CFrame.new(0, Width/2, Len1/2)
  121.         P2.Name = "WulfEffect"
  122.         P2.Parent = Parent
  123.         P2.Size = Vector3.new(0.2, Width, Len2)
  124.         P2.CFrame = MainCF * CFrame.Angles(math.pi, math.pi, -math.pi/2) * CFrame.new(0, Width/2, -Len1 - Len2/2)
  125.         return P1, P2
  126.     end
  127.     function StartTrail(Part, Colour)
  128.         Colour = Colour or "White"
  129.         Trailing = true
  130.         TConnect = game:service("RunService").Heartbeat:connect(function()
  131.             local P0 = Part.CFrame * CFrame.new(0, Part.Size.Y/2, 0)
  132.             local P1 = Part.CFrame * CFrame.new(0, -Part.Size.Y/2, 0)
  133.             if Last[1] and Last[2] then
  134.                 local A, B = Triangle(workspace, P0.p, Last[1].p, Last[2].p, Colour)
  135.                 local C, D = Triangle(workspace, P0.p, P1.p, Last[2].p, Colour)
  136.                 Spawn(function()
  137.                     for i = .4, 1, .05 do
  138.                         wait()
  139.                         A.Transparency, B.Transparency, C.Transparency, D.Transparency = i, i, i, i
  140.                     end
  141.                     A:Destroy()
  142.                     B:Destroy()
  143.                     C:Destroy()
  144.                     D:Destroy()
  145.                 end)
  146.             end
  147.             Last[1] = P0
  148.             Last[2] = P1
  149.         end)
  150.     end
  151.     function StopTrail()
  152.         TConnect:disconnect()
  153.         Trailing = false
  154.         Last[1] = nil
  155.         Last[2] = nil
  156.     end
  157. end
  158. do -- Credit to stravant.
  159.     function QuaternionFromCFrame(cf)
  160.         local mx,  my,  mz,
  161.             m00, m01, m02,
  162.             m10, m11, m12,
  163.             m20, m21, m22 = cf:components()
  164.         local trace = m00 + m11 + m22
  165.         if trace > 0 then
  166.             local s = math.sqrt(1 + trace)
  167.             local recip = 0.5/s
  168.             return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  169.         else
  170.             local i = 0
  171.             if m11 > m00 then i = 1 end
  172.             if m22 > (i == 0 and m00 or m11) then i = 2 end
  173.             if i == 0 then
  174.                 local s = math.sqrt(m00-m11-m22+1)
  175.                 local recip = 0.5/s
  176.                 return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  177.             elseif i == 1 then
  178.                 local s = math.sqrt(m11-m22-m00+1)
  179.                 local recip = 0.5/s
  180.                 return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  181.             elseif i == 2 then
  182.                 local s = math.sqrt(m22-m00-m11+1)
  183.                 local recip = 0.5/s
  184.                 return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  185.             end
  186.         end
  187.     end
  188.     function QuaternionToCFrame(px, py, pz, x, y, z, w)
  189.         local xs, ys, zs = x + x, y + y, z + z
  190.         local wx, wy, wz = w*xs, w*ys, w*zs
  191.         local xx = x*xs
  192.         local xy = x*ys
  193.         local xz = x*zs
  194.         local yy = y*ys
  195.         local yz = y*zs
  196.         local zz = z*zs
  197.         return CFrame.new(px,py,pz,
  198.             1-(yy+zz), xy - wz,   xz + wy,
  199.             xy + wz,   1-(xx+zz), yz - wx,
  200.             xz - wy,   yz + wx,   1-(xx+yy))
  201.     end
  202.     function QuaternionSlerp(a, b, t)
  203.         local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  204.         local startInterp, finishInterp;
  205.         if cosTheta >= 0.0001 then
  206.             if (1 - cosTheta) > 0.0001 then
  207.                 local theta = math.acos(cosTheta)
  208.                 local invSinTheta = 1/math.sin(theta)
  209.                 startInterp = math.sin((1-t)*theta)*invSinTheta
  210.                 finishInterp = math.sin(t*theta)*invSinTheta
  211.             else
  212.                 startInterp = 1-t
  213.                 finishInterp = t
  214.             end
  215.         else
  216.             if (1+cosTheta) > 0.0001 then
  217.                 local theta = math.acos(-cosTheta)
  218.                 local invSinTheta = 1/math.sin(theta)
  219.                 startInterp = math.sin((t-1)*theta)*invSinTheta
  220.                 finishInterp = math.sin(t*theta)*invSinTheta
  221.             else
  222.                 startInterp = t-1
  223.                 finishInterp = t
  224.             end
  225.         end
  226.         return a[1]*startInterp + b[1]*finishInterp,
  227.             a[2]*startInterp + b[2]*finishInterp,
  228.             a[3]*startInterp + b[3]*finishInterp,
  229.             a[4]*startInterp + b[4]*finishInterp
  230.     end
  231. end
  232. Welds = {}
  233. function StopWeld(Weld)
  234.     if Welds[Weld] and Welds[Weld][1] == true then
  235.         Weld[Weld][2] = true
  236.     end
  237. end
  238. function TweenWeld(Weld, C, Start, Finish, Length, Sync)
  239.     if Welds[Weld] and Welds[Weld][1] == true then
  240.         return
  241.     elseif not Welds[Weld] then
  242.         Welds[Weld] = {false, false}
  243.     end
  244.     local function Tween()
  245.         if Welds[Weld][1] == true then return end
  246.         Welds[Weld][1] = true
  247.         local s = {QuaternionFromCFrame(Start)}
  248.         local f = {QuaternionFromCFrame(Finish)}
  249.         local sx, sy, sz = Start.x, Start.y, Start.z
  250.         local fx, fy, fz = Finish.x, Finish.y, Finish.z
  251.         for i = 1, Length do
  252.             if Welds[Weld][2] then break end
  253.             local sp = i / Length
  254.             local _sp = 1 - sp
  255.             Weld["C" .. C] = QuaternionToCFrame(_sp*sx + sp*fx, _sp*sy + sp*fy, _sp*sz + sp*fz,
  256.                 QuaternionSlerp(s, f, sp))
  257.             game:service("RunService").Stepped:wait()
  258.         end
  259.         Welds[Weld][2] = false
  260.         Welds[Weld][1] = false
  261.     end
  262.     if Sync then Spawn(Tween) else Tween() end
  263. end
  264.  
  265. -----------------------------------------------------------------------------------------------------
  266.  
  267. Player = game:service("Players").LocalPlayer
  268. Mouse = Player:GetMouse()
  269. Backpack = Player:WaitForChild("Backpack")
  270. Character = Player.Character
  271. Torso = Character:WaitForChild("Torso")
  272. HRP = Character:WaitForChild("HumanoidRootPart")
  273. RA = Character:WaitForChild("Right Arm")
  274. LA = Character:WaitForChild("Left Arm")
  275. RL =  Character:WaitForChild("Right Leg")
  276. LL =  Character:WaitForChild("Left Leg")
  277. Head = Character:WaitForChild("Head")
  278. ORS = Torso:WaitForChild("Right Shoulder")
  279. OLS = Torso:WaitForChild("Left Shoulder")
  280. Humanoid = Character:WaitForChild("Humanoid")
  281. Asset = "rbxassetid://"
  282. Meshes = {Cone = "1033714", Ring = "3270017", Blast = "20329976", Diamond = "9756362", Spike = "1033714", Skull = "4770583"}
  283. C0 = {
  284.     LS = CN(-1, 0.5, 0),
  285.     RS = CN(1, 0.5, 0),
  286.     LH = CN(-1, -1, 0),
  287.     RH = CN(1, -1, 0),
  288.     NK = CN(0, 1, 0),
  289.     TW = CN(0, 0, 0),
  290. }
  291. C1 = {
  292.     LS = CN(0.5, 0.5, 0),
  293.     RS = CN(-0.5, 0.5, 0),
  294.     LH = CN(-.5, 1, 0),
  295.     RH = CN(.5, 1, 0),
  296.     NK = CN(0, -.5, 0),
  297.     TW = CN(0, 0, 0),
  298. }
  299. OC0 = {
  300.     RS = CN(1, .5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  301.     LS = CN(-1, .5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  302.     RH = CN(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  303.     LH = CN(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  304.     NK = CN(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  305.     TW = CN(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, -0)
  306. }
  307. OC1 = {
  308.     RS = CN(.5, .5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  309.     LS = CN(-.5, .5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  310.     RH = CN(-.5, .5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  311.     LH = CN(.5, .5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  312.     NK = CN(0, -.5, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),
  313.     TW = CN(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),
  314. }
  315. Attacking = false
  316. SpiritOn = false
  317. WolfOn = false
  318. SwordInactive = false
  319. local TW, NK, RS, LS
  320.  
  321. pcall(game.Destroy, Character:FindFirstChild("Sword"))
  322. Model = New("Model", Character, { Name = "Sword" })
  323. Handle = Part(Model, CN(), V3(.4, 3, .4), "Gun metallic", "Concrete", 0, false, false)
  324. New("CylinderMesh", Handle)
  325. HandleW = Weld(Torso, Handle, CN(1, -1, .5) * CA(0, 0, Pi/4))
  326. for i = 0, 3, .25 do
  327.     local P = Part(Model, CN(), V3(.5, .2, .5), "Red flip/flop", "Concrete", 0, false, false)
  328.     New("SpecialMesh", P, { MeshType = "Sphere" })
  329.     Weld(Handle, P, CN(0, -1.5, 0) * CN(0, i, 0) * CA(Pi/6, 0, 0))
  330. end
  331. for i = 0, 1, .25 do
  332.     local P = Part(Model, CN(), V3(.5, .5, .5), "Red flip/flop", "Concrete", 0, false, false)
  333.     Weld(Handle, P, CN(0, -1.5, 0) * CA(i, i, i))
  334. end
  335. P1 = Part(Model, CN(), V3(.6, .3, .6), "Red flip/flop", "Concrete", 0, false, false)
  336. New("SpecialMesh", P1, { MeshType = "Sphere" })
  337. Weld(Handle, P1, CN(0, 1.5, 0))
  338. P2 = Part(Model, CN(), V3(.75, .3, .75), "Red flip/flop", "Concrete", 0, false, false)
  339. New("SpecialMesh", P2, { MeshType = "Sphere" })
  340. Weld(P1, P2, CN(0, .125, 0))
  341. Div = Part(Model, CN(), V3(2, .5, .5), "Gun metallic", "Concrete", 0, false, false)
  342. Weld(Handle, Div, CN(0, 1.75 + .125, 0))
  343. P3 = Part(Model, CN(), V3(.5, .5, 0), "Gun metallic", "Concrete", 0, false, false, "WedgePart")
  344. Weld(Div, P3, CN(-1.1, 0, 0) * CA(Pi, Pi/2, 0))
  345. P4 = Part(Model, CN(), V3(.5, .5, 0), "Gun metallic", "Concrete", 0, false, false, "WedgePart")
  346. Weld(Div, P4, CN(1.1, 0, 0) * CA(Pi, -Pi/2, 0))
  347. P5 = Part(Model, CN(), V3(.5, 0, 0), "Gun metallic", "Concrete", 0, false, false, "WedgePart")
  348. Weld(Div, P5, CN(-.9, -.35, 0) * CA(Pi, Pi/2, 0))
  349. P6 = Part(Model, CN(), V3(.5, 0, 0), "Gun metallic", "Concrete", 0, false, false, "WedgePart")
  350. Weld(Div, P6, CN(.9, -.35, 0) * CA(Pi, -Pi/2, 0))
  351. BladeStart = Part(Model, CN(), V3(2.25, .75, .4), "Gun metallic", "Concrete", 0, false, false)
  352. Weld(Div, BladeStart, CN(0, .375 + .25, 0))
  353. Blade = Part(Model, CN(), V3(1.75, 8, .4), "Silver", "Concrete", 0, false, false)
  354. Weld(BladeStart, Blade, CN(0, 4.375, 0))
  355. Edge1 = Part(Model, CN(), V3(.3, 8, .3), "Silver", "Concrete", 0, false, false)
  356. New("BlockMesh", Edge1, { Scale = V3(.95, 1, .95) })
  357. Weld(Blade, Edge1, CN(1.75 / 2, 0, 0) * CA(0, Pi/4, 0))
  358. Edge2 = Part(Model, CN(), V3(.3, 8, .3), "Silver", "Concrete", 0, false, false)
  359. New("BlockMesh", Edge2, { Scale = V3(.95, 1, .95) })
  360. Weld(Blade, Edge2, CN(-1.75 / 2, 0, 0) * CA(0, Pi/4, 0))
  361. Top = Part(Model, CN(), V3(1.25, 1.25, .4), "Silver", "Concrete", 0, false, false)
  362. New("BlockMesh", Top, { Scale = V3(1, 1, .999) })
  363. Weld(Blade, Top, CN(0, 4, 0) * CA(0, 0, Pi/4))
  364. Edge3 = Part(Model, CN(), V3(.3, 1.25, .3), "Silver", "Concrete", 0, false, false)
  365. New("BlockMesh", Edge3, { Scale = V3(.95, 1, .95) })
  366. Weld(Top, Edge3, CN(1.25 / 2, 0, 0) * CA(0, Pi/4, 0))
  367. Edge4 = Part(Model, CN(), V3(.3, 1.25, .3), "Silver", "Concrete", 0, false, false)
  368. New("BlockMesh", Edge4, { Scale = V3(.95, 1, .95) })
  369. Weld(Top, Edge4, CA(0, 0, Pi/2) * CN(1.25 / 2, 0, 0) * CA(0, -Pi/4, 0))
  370. D1 = Part(Model, CN(), V3(.3, .3, .425), "Light blue", "Concrete", 0, false, false)
  371. Weld(Blade, D1, CN(0, -3, 0) * CA(0, 0, Pi/4))
  372. D2 = Part(Model, CN(), V3(.3, .625, .425), "Light blue", "Concrete", 0, false, false)
  373. Weld(Blade, D2, CN(.125, -2.5, 0) * CA(0, 0, Pi/4))
  374. D3 = Part(Model, CN(), V3(.3, .625, .425), "Light blue", "Concrete", 0, false, false)
  375. Weld(Blade, D3, CN(-.125, -2.5, 0) * CA(0, 0, -Pi/4))
  376. D4 = Part(Model, CN(), V3(.3, .625, .425), "Light blue", "Concrete", 0, false, false)
  377. Weld(Blade, D4, CN(.125, -1.5, 0) * CA(0, 0, -Pi/4))
  378. D5 = Part(Model, CN(), V3(.3, .625, .425), "Light blue", "Concrete", 0, false, false)
  379. Weld(Blade, D5, CN(-.125, -1.5, 0) * CA(0, 0, Pi/4))
  380. D6 = Part(Model, CN(), V3(.3, .3, .425), "Light blue", "Concrete", 0, false, false)
  381. Weld(Blade, D6, CN(0, -1, 0) * CA(0, 0, Pi/4))
  382.  
  383. TP1 = Part(Model, CN(), V3(0, 0, 0), "White", "Concrete", 1, false, false)
  384. Weld(Blade, TP1, CN(0, Blade.Size.Y / 2, 0))
  385.  
  386. C0.HW = CN(0, 0, -.5)
  387.  
  388. function CrownExplode(CF, Size, Colour)
  389.     local Part = Part(workspace, CF, V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  390.     Part.Name = "WulfEffect"
  391.     local Mesh = New("FileMesh", Part, { MeshId = Asset .. Meshes.Blast, Scale = V3(Size, Size, Size) })
  392.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  393.     Spawn(function()
  394.         for i = .4, 1.05, .05 do
  395.             Part.Transparency = i
  396.             Mesh.Scale = Mesh.Scale + V3(1, 1, 1)
  397.             wait()
  398.         end
  399.         Part:Destroy()
  400.     end)
  401. end
  402. function CrownSpin(CF, Size, Colour)
  403.     local Part = Part(workspace, CF, V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  404.     Part.Name = "WulfEffect"
  405.     local Mesh = New("FileMesh", Part, { MeshId = Asset .. Meshes.Blast, Scale = V3(Size, Size, Size) })
  406.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  407.     local Rot = 0
  408.     Spawn(function()
  409.         for i = .4, 1.05, .05 do
  410.             Part.Transparency = i
  411.             Part.CFrame = CF * CA(0, Rad(Rot), 0)
  412.             wait()
  413.             Rot = Rot + 2
  414.         end
  415.         Part:Destroy()
  416.     end)
  417. end
  418. function SphereExplode(CF, Size, Colour)
  419.     local Part = Part(workspace, CF, V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  420.     Part.Name = "WulfEffect"
  421.     local Mesh = New("SpecialMesh", Part, { MeshType = "Sphere" })
  422.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  423.     Spawn(function()
  424.         for i = .4, 1.05, .05 do
  425.             Part.Transparency = i
  426.             Mesh.Scale = Mesh.Scale + V3(.5, .5, .5)
  427.             wait()
  428.         end
  429.         Part:Destroy()
  430.     end)
  431. end
  432. function BrickExplode(CF, Size, Colour)
  433.     local Part = Part(workspace, CF * CA(Random(Pi * 2), Random(Pi * 2), Random(Pi * 2)), V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  434.     Part.Name = "WulfEffect"
  435.     local Mesh = New("BlockMesh", Part)
  436.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  437.     Spawn(function()
  438.         for i = .4, 1.05, .05 do
  439.             Part.Transparency = i
  440.             Mesh.Scale = Mesh.Scale + V3(.5, .5, .5)
  441.             wait()
  442.         end
  443.         Part:Destroy()
  444.     end)
  445. end
  446. function Glitter(CF, Colour, RelSize)
  447.     local RelSize = RelSize or .75
  448.     local SizeX, SizeY, SizeZ = Abs(Random(RelSize)), Abs(Random(RelSize)), Abs(Random(RelSize))
  449.     local Part = Part(workspace, CN(CF.X, CF.Y, CF.Z), V3(SizeX, SizeY, SizeZ), Colour, "SmoothPlastic", 0.4, true, false)
  450.     Part.Name = "WulfEffect"
  451.     local Mesh = New("BlockMesh", Part)
  452.     New("PointLight", Part, { Color = BC(Colour).Color, Range = ( (SizeX + SizeY + SizeZ) / 3 ) * 2 })
  453.     Spawn(function()
  454.         for i = .4, 1.05, .05 do
  455.             Part.Transparency = i
  456.             Mesh.Scale = Mesh.Scale + V3(.125, .125, .125)
  457.             wait()
  458.         end
  459.         Part:Destroy()
  460.     end)
  461. end
  462. function DiamondExplode(CF, Size, Colour)
  463.     local Part = Part(workspace, CF * CA(Random(Pi*2), Random(Pi*2), Random(Pi*2)), V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  464.     Part.Name = "WulfEffect"
  465.     local Mesh = New("FileMesh", Part, { MeshId = Asset .. Meshes.Diamond })
  466.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  467.     Spawn(function()
  468.         for i = .4, 1.05, .05 do
  469.             Part.Transparency = i
  470.             Mesh.Scale = Mesh.Scale + V3(5, 5, 5)
  471.             wait()
  472.         end
  473.         Part:Destroy()
  474.     end)
  475. end
  476. function SpikeUp(CF, Size, Colour)
  477.     local Part = Part(workspace, CF * CN(0, -(Size * 2) / 2, 0), V3(Size / 2, Size * 4, Size / 2), Colour, "SmoothPlastic", 0.4, true, false)
  478.     Part.Name = "WulfEffect"
  479.     local Mesh = New("FileMesh", Part, { MeshId = Asset .. Meshes.Spike, Scale = Part.Size / 2 })
  480.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  481.     Spawn(function()
  482.         for i = 1, Size - 1, 1 do
  483.             Part.CFrame = CF * CN(0, i, 0)
  484.             wait()
  485.         end
  486.         wait(math.random(5, 8))
  487.         for i = .4, 1.05, .05 do
  488.             Part.Transparency = i
  489.             wait()
  490.         end
  491.         Part:Destroy()
  492.     end)
  493. end
  494. function BrickTo(CF, To, Size, Colour)
  495.     local Part = Part(workspace, CF, V3(Size, Size, Size), Colour, "SmoothPlastic", 0.4, true, false)
  496.     Part.Name = "WulfEffect"
  497.     local Mesh = New("SpecialMesh", Part, { MeshType = "Brick" })
  498.     New("PointLight", Part, { Color = BC(Colour).Color, Range = Size * 2 })
  499.     Spawn(function()
  500.         for i = .4, 1.05, .05 do
  501.             Part.Transparency = i
  502.             Mesh.Scale = Mesh.Scale + V3(.125, .125, .125)
  503.             Part.CFrame = CF + (Part.Position - To.p) * .9
  504.             wait()
  505.         end
  506.         Part:Destroy()
  507.     end)
  508. end
  509. function DamageNearby(CF, Damage, Distance)
  510.     local Humanoids = { }
  511.     for i, v in pairs(workspace:children()) do
  512.         if v:IsA("Model") and v~=Character and v:FindFirstChild("Torso") and v:FindFirstChild("Humanoid") and
  513.             (v:FindFirstChild("Torso").CFrame.p - CF.p).magnitude < Distance then
  514.             table.insert(Humanoids, v:FindFirstChild("Humanoid"))
  515.         end
  516.     end
  517.     for i, v in pairs(Humanoids) do
  518.         v.Health = v.Health - Damage
  519.     end
  520. end
  521. function GetIgnoreList()
  522.     local Return = { }
  523.     for i, v in pairs(workspace:children()) do
  524.         if v.Name == "WulfEffect" then
  525.             table.insert(Return, v)
  526.         end
  527.     end
  528.     return Return
  529. end
  530.  
  531. function ReturnToDefault(Speed)
  532.     Speed = Speed or 10
  533.     TweenWeld(HandleW, 0, HandleW.C0, C0.HW, Speed, true)
  534.     TweenWeld(TW, 0, TW.C0, C0.TW, Speed, true)
  535.     TweenWeld(NK, 0, NK.C0, C0.NK, Speed, true)
  536.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(-.125, 0 , 0) * CA(Pi/1.625, 0, Pi/8), Speed, true)
  537.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), Speed, false)
  538. end
  539. function Spirit()
  540.     Attacking = true
  541.     HandleW.Parent = nil
  542.     local Follow = true
  543.     local CF0 = CN(Torso.CFrame.X, Torso.CFrame.Y, Torso.CFrame.Z)
  544.     local CF = CF0 * CN(0, -20, 0)
  545.     HBP = New("BodyPosition", Handle, { maxForce = V3(math.huge, math.huge, math.huge), position = (CF0 * CN(0, 5, 0)).p })
  546.     HBG = New("BodyGyro", Handle, { maxTorque = V3(math.huge, math.huge, math.huge), cframe = CF0 })
  547.     TweenWeld(RS, 0, RS.C0, C0.RS * CA(Pi/1.25, 0, Pi/10), 5, true)
  548.     TweenWeld(LS, 0, LS.C0, C0.LS * CA(Pi/1.25, 0, -Pi/10), 5, false)
  549.     local Body = Part(Model, CF, V3(3, 3, 2), "Really black", "SmoothPlastic", 0.4, false, false)
  550.     local BP = New("BodyPosition", Body, { maxForce = V3(math.huge, math.huge, math.huge) })
  551.     local BG = New("BodyGyro", Body, { maxTorque = V3(math.huge, math.huge, math.huge) })
  552.     local BS1 = Part(Model, CF, V3(2, 3, 1), "Really black", "SmoothPlastic", 0.4, false, false, "WedgePart")
  553.     Weld(Body, BS1, CN(-2, 0, 0) * CA(Pi, Pi/2, 0))
  554.     local BS2 = Part(Model, CF, V3(2, 3, 1), "Really black", "SmoothPlastic", 0.4, false, false, "WedgePart")
  555.     Weld(Body, BS2, CN(2, 0, 0) * CA(Pi, -Pi/2, 0))
  556.     local Head = Part(Model, CF, V3(2, 2, 2), "Really black", "SmoothPlastic", 0.4, false, false, "WedgePart")
  557.     New("Fire", Head, { Color = BC("Really black").Color, SecondaryColor = BC("Really black").Color, Size = 3 })
  558.     New("SpecialMesh", Head, { MeshType = "FileMesh", MeshId = Asset .. Meshes.Skull, Scale = V3(2, 2, 2) / V3(.375, .375, .375) })
  559.     local Neck = Weld(Body, Head, CN(0, 1.25, 0), CN(0, -1.25, 0))
  560.     local RightA = Part(Model, CF, V3(2, 3, 2), "Really black", "SmoothPlastic", 0.4, false, false)
  561.     local LeftA = Part(Model, CF, V3(2, 3, 2), "Really black", "SmoothPlastic", 0.4, false, false)
  562.     local RAW = Weld(Body, RightA, CN(-1.25, 1.5, 0), CN(1.25, 1.5, 0))
  563.     local LAW = Weld(Body, LeftA, CN(1.25, 1.5, 0), CN(-1.25, 1.5, 0))
  564.     SpiritOn = true
  565.     Spawn(function()
  566.         for i = 0, 10 do
  567.             CrownExplode(Torso.CFrame * CN(0, -3, 0), 10, "Really black")
  568.             DiamondExplode(Torso.CFrame * CN(0, -3, 0), 20, "Really black")
  569.             local Size = math.random(5, 10)
  570.             SpikeUp(Torso.CFrame * CA(Random(Pi/8), 0, Random(Pi/8)) * CN(Random(10), -Size, Random(10)), Size, "Really black")
  571.             wait()
  572.         end
  573.     end)
  574.     Spawn(function()
  575.         local Number = 0
  576.         while SpiritOn and wait() do
  577.             if Follow then
  578.                 BP.position = (Torso.CFrame * CFrame.new(0, 5, 5)).p
  579.                 BG.cframe = CN(Body.CFrame.p, Mouse.Hit.p)
  580.             end
  581.             Number = Number + 1
  582.             if Number % 100 == 0 then
  583.                 SphereExplode(Body.CFrame, 5, "Really black")
  584.             end
  585.             if Number % 5 == 0 then
  586.                 Glitter(Body.CFrame * CN(Random(5), Random(5), Random(5)), "Really black")
  587.             end
  588.         end
  589.         BG:Destroy()
  590.         BP:Destroy()
  591.         DiamondExplode(Body.CFrame, 5, "Really black")
  592.     end)
  593.     TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/1.25, 0, -Pi/10), 5, true)
  594.     TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/1.25, 0, Pi/10), 5, false)
  595.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(-.125, 0 , 0) * CA(0, 0, Pi/16), 5, true)
  596.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), 5, false)
  597.     TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, -Pi/10), 5, true)
  598.     TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, Pi/10), 5, true)
  599.     HBP.position = RightA.CFrame.p
  600.     HBG.cframe = RightA.CFrame
  601.     Delay(.5, function()
  602.         HBP:Destroy()
  603.         HandleW.Parent = Model
  604.         HandleW.Part0 = RightA
  605.         HandleW.Part1 = Handle
  606.         HandleW.C0 = CN(0, 0, -1)
  607.         Attacking = false
  608.     end)
  609.     _SpiritEvent = assert(LoadLibrary("RbxUtility")).CreateSignal()
  610.     _SpiritEvent:connect(function(Attack_Type, ...)
  611.         local AttackData = { ... }
  612.         Attacking = true
  613.         if Attack_Type == "Slam" and Mouse.Target then
  614.             local Hit = Mouse.Hit
  615.             Hit = CN(Hit.X, Hit.Y, Hit.Z)
  616.             Follow = false
  617.             BP.position = CN(Hit.X, Hit.Y + 100, Hit.Z).p
  618.             BG.cframe = CN(Body.CFrame.p, Hit.p)
  619.             TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/1.25, 0, Pi/5), 5, true)
  620.             TweenWeld(HandleW, 0, HandleW.C0, C0.HW * CN(0, -2, 0) * CA(Pi/2, -Pi/5, 0), 5, true)
  621.             TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/1.25, 0, -Pi/5), 5, false)
  622.             BP.position = Hit.p
  623.             Delay(.25, function()
  624.                 DamageNearby(Hit, 20, 20)
  625.                 for i = 1, 10 do
  626.                     wait()
  627.                     local Size = math.random(5, 10)
  628.                     CrownExplode(Hit, Size, "Really black")
  629.                     SpikeUp(Hit * CA(Random(Pi/8), 0, Random(Pi/8)) * CN(Random(20), -Size, Random(20)), Size, "Really black")
  630.                 end
  631.             end)
  632.             wait(.5)
  633.             TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, -Pi/10), 5, true)
  634.             TweenWeld(HandleW, 0, HandleW.C0, C0.HW, 5, true)
  635.             TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, Pi/10), 5, false)
  636.             wait(.25)
  637.             Follow = true
  638.         elseif Attack_Type == "Slash" then
  639.    
  640.         elseif Attack_Type == "Throw" and Mouse.Target then
  641.             local Hit = Mouse.Hit
  642.             TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/1.5, 0, -Pi/10), 5, true)
  643.             TweenWeld(HandleW, 0, HandleW.C0, C0.HW * CA(Pi, 0, 0), 5, true)
  644.             TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(-Pi/4, 0, Pi/10), 5, false)
  645.             local HBP = New("BodyPosition", Blade, { maxForce = V3(1, 1, 1) * 10^6, P = 10^4, position = Hit.p })
  646.             local HBG = New("BodyGyro", Blade, { maxTorque = V3(1, 1, 1) * 10^6, P = 10^4, cframe = CN(Blade.CFrame.p, Hit.p) * CN(0, 0, 5) })
  647.             TweenWeld(RAW, 0, RAW.C0, CN(-1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, -Pi/10), 5, true)
  648.             TweenWeld(HandleW, 0, HandleW.C0, C0.HW, 5, true)
  649.             TweenWeld(LAW, 0, LAW.C0, CN(1.25, 1.5, 0) * CN(0, -.5, 0) * CA(Pi/4, 0, Pi/10), 5, false)
  650.             HandleW.Parent = nil
  651.             repeat wait()
  652.                 local Mag = (Hit.p - Blade.CFrame.p).magnitude
  653.             until Mag < 5
  654.             wait(math.random(1, 3))
  655.             HBP:Destroy()
  656.             HBG:Destroy()
  657.             HandleW.Parent = Model
  658.             HandleW.Part0 = RightA
  659.             HandleW.Part1 = Handle
  660.             HandleW.C0 = CN(0, 0, -1)
  661.         end
  662.         Attacking = false
  663.     end)
  664. end
  665. function Unspirit()
  666.     Attacking = true
  667.     HBG:Destroy()
  668.     HBP:Destroy()
  669.     HandleW.Part0 = RA
  670.     HandleW.C0 = CN(0, 0, -.5)
  671.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(-.125, 0 , 0) * CA(Pi/1.625, 0, Pi/8), 5, true)
  672.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), 5, false)
  673.     SpiritOn = false
  674.     Attacking = false
  675.     _SpiritEvent:disconnect()
  676.     _SpiritEvent = nil
  677. end
  678. function Wolf()
  679.     -- OLD AS SHT FUNCTION
  680.     local function cslerp(start,destination,increment)
  681.         local function s(a,b,c)return (1-c)*a+(c*b)end
  682.         local c1 = {start.X,start.Y,start.Z,start:toEulerAnglesXYZ()}
  683.         local c2 = {destination.X,destination.Y,destination.Z,destination:toEulerAnglesXYZ()}
  684.         for i,v in pairs(c1)do c1[i] = s(v,c2[i],increment)end
  685.         return CFrame.new(c1[1],c1[2],c1[3])*CFrame.Angles(c1[4],c1[5],c1[6])
  686.     end
  687.     --
  688.    
  689.     Attacking = true
  690.     WolfOn = true
  691.     Model2 = New("Model", Model, { Name = "Wolf" })
  692.     local Mode = "Idle"
  693.     local CF0 = Torso.CFrame
  694.     local CF = CF0 * CN(0, 2.5, 10)
  695.     local LeftBLeg
  696.     local RightBLeg
  697.     local LeftFLeg
  698.     local RightFLeg
  699.     local Stand = Part(Model2, CF, V3(8, .25, 5), "Grey", "SmoothPlastic", 1, false, true)
  700.     Stand.Name = "Stand"
  701.     local FakeH = Part(Model2, CF, V3(1, 1, 1), "Grey", "SmoothPlastic", 1, false, false)
  702.     FakeH.Name = "Head"
  703.     local FakeT = Part(Model2, CF, V3(1, 1, 1), "Grey", "SmoothPlastic", 1, false, false)
  704.     FakeT.Name = "Torso"
  705.     local FakeHRP = Part(Model2, CF, V3(1, 1, 1), "Grey", "SmoothPlastic", 1, false, false)
  706.     FakeHRP.Name = "HumanoidRootPart"
  707.     Weld(Stand, FakeHRP, CN(0, 5, 0))
  708.     Weld(FakeHRP, FakeT).Name = "RootJoint"
  709.     Weld(FakeT, FakeH).Name = "Neck"
  710.     local Body = Part(Model2, CF, V3(6, 2.5, 3.5), "Grey", "SmoothPlastic", 0, false, false)
  711.     local BWeld = Weld(Stand, Body, CN(0, 2.5, 0) * CA(0, Pi/2, 0), CN(0, -2.5, 0))
  712.     --local Seat = Part(Model2, CF, V3(1, 0, 1), "Grey", "SmoothPlastic", 1, false, false, "Seat")
  713.     --Weld(Body, Seat, CN(0, 1.25, 0) * CA(0, -Pi/2, 0))
  714.     local BodyTop = Part(Model2, CF, V3(3, 3, 4), "Grey", "SmoothPlastic", 0, false, false)
  715.     local BTWeld = Weld(Body, BodyTop, CN(1, 0, 0), CN(-1, 0, 0))
  716.     local Neck = Part(Model2, CF, V3(3, 2, 2.5), "Grey", "SmoothPlastic", 0, false, false)
  717.     local NeckW = Weld(BodyTop, Neck, CA(0, 0, Pi/8) * CN(.75, 0, 0), CN(-.75, 0, 0))
  718.     local Head = Part(Model2, CF, V3(2.25, 2, 2.5), "Grey", "SmoothPlastic", 0, false, false)
  719.     local HeadW = Weld(Neck, Head, CA(0, 0, -Pi/8) * CN(1, .25, 0), CN(-1, -.25, 0))
  720.     local Snout = Part(Model2, CF, V3(2, 1.25, 1.25), "Grey", "SmoothPlastic", 0, false, false)
  721.     local SnoutW = Weld(Head, Snout, CN(.75, -.175, 0), CN(-.75, .175, 0))
  722.     local Ear1 = Part(Model2, CF, V3(.75, 1.5, .5), "Grey", "SmoothPlastic", 0, false, false, "WedgePart")
  723.     Weld(Head, Ear1, CN(0, 1.75, .5))
  724.     local Ear2 = Part(Model2, CF, V3(.75, 1.5, .5), "Grey", "SmoothPlastic", 0, false, false, "WedgePart")
  725.     Weld(Head, Ear2, CN(0, 1.75, -.5) * CA(0, Pi, 0))
  726.     local Ear3 = Part(Model2, CF, V3(.75, 1.5, .5), "Grey", "SmoothPlastic", 0, false, false, "WedgePart")
  727.     Weld(Ear1, Ear3, CN(0, 0, .5) * CA(0, Pi, 0))
  728.     local Ear3 = Part(Model2, CF, V3(.75, 1.5, .5), "Grey", "SmoothPlastic", 0, false, false, "WedgePart")
  729.     Weld(Ear2, Ear3, CN(0, 0, .5) * CA(0, Pi, 0))
  730.     local Tail = Part(Model2, CF, V3(5, 2, 2), "Grey", "SmoothPlastic", 0, false, false)
  731.     local TailW = Weld(Body, Tail, CA(0, 0, Pi/8) * CN(-2.5, .5, 0), CN(2.5, -.5, 0))
  732.     HandleW.Part0 = Snout
  733.     HandleW.C0 = CA(Pi/2, 0, 0)
  734.  
  735.     -- > Left Leg
  736.     local B1LegP1 = Part(Model2, CF, V3(2, 2.5, 1), "Grey", "SmoothPlastic", 0, false, false)
  737.     local B1LegP1W = Weld(Body, B1LegP1, CN(-1, -.25, -1), CN(1, .25, 1))
  738.     local B1LegP2 = Part(Model2, CF, V3(1.5, 2, 1), "Grey", "SmoothPlastic", 0, false, false)
  739.     local B1LegP2W = Weld(B1LegP1, B1LegP2, CA(0, 0, -Pi/6) * CN(0, -.75, 0), CN(0, .75, 0))
  740.     local B1LegP3 = Part(Model2, CF, V3(1, 2.5, 1), "Grey", "SmoothPlastic", 0, false, false)
  741.     local B1LegP3W = Weld(B1LegP2, B1LegP3, CA(0, 0, Pi/7) * CN(0, -1, 0), CN(0, 1, 0))
  742.     local B1Paw = Part(Model2, CF, V3(1.5, .75, 1), "Grey", "SmoothPlastic", 0, false, false)
  743.     local B1PawW = Weld(B1LegP3, B1Paw, CA(0, 0, Pi/18) * CN(0, -.75, 0), CN(0, .75, 0))
  744.     LeftBLeg = {
  745.         Paw = B1PawW,
  746.         P1 = B1LegP1W,
  747.         P2 = B1LegP2W,
  748.         P3 = B1LegP3W
  749.     }
  750.    
  751.     -- > Right Leg
  752.     local B1LegP1 = Part(Model2, CF, V3(2, 2.5, 1), "Grey", "SmoothPlastic", 0, false, false)
  753.     local B1LegP1W = Weld(Body, B1LegP1, CN(-1, -.25, 1), CN(1, .25, -1))
  754.     local B1LegP2 = Part(Model2, CF, V3(1.5, 2, 1), "Grey", "SmoothPlastic", 0, false, false)
  755.     local B1LegP2W = Weld(B1LegP1, B1LegP2, CA(0, 0, -Pi/6) * CN(0, -.75, 0), CN(0, .75, 0))
  756.     local B1LegP3 = Part(Model2, CF, V3(1, 2.5, 1), "Grey", "SmoothPlastic", 0, false, false)
  757.     local B1LegP3W = Weld(B1LegP2, B1LegP3, CA(0, 0, Pi/7) * CN(0, -1, 0), CN(0, 1, 0))
  758.     local B1Paw = Part(Model2, CF, V3(1.5, .75, 1), "Grey", "SmoothPlastic", 0, false, false)
  759.     local B1PawW = Weld(B1LegP3, B1Paw, CA(0, 0, Pi/18) * CN(0, -.75, 0), CN(0, .75, 0))
  760.     RightBLeg = {
  761.         Paw = B1PawW,
  762.         P1 = B1LegP1W,
  763.         P2 = B1LegP2W,
  764.         P3 = B1LegP3W
  765.     }
  766.    
  767.     -- > Left Leg Front
  768.     local B1LegP1 = Part(Model2, CF, V3(1.5, 3, 1), "Grey", "SmoothPlastic", 0, false, false)
  769.     local B1LegP1W = Weld(Body, B1LegP1, CN(1, -.5, -1), CN(-1, .5, 1))
  770.     local B1LegP2 = Part(Model2, CF, V3(1.25, 3, 1), "Grey", "SmoothPlastic", 0, false, false)
  771.     local B1LegP2W = Weld(B1LegP1, B1LegP2, CN(0, -1.25, 0), CN(0, 1.25, 0))
  772.     local B1Paw = Part(Model2, CF, V3(1.5, .75, 1), "Grey", "SmoothPlastic", 0, false, false)
  773.     local B1PawW = Weld(B1LegP2, B1Paw, CN(.25, -.75, 0), CN(-.25, .75, 0))
  774.     LeftFLeg = {
  775.         Paw = B1PawW,
  776.         P1 = B1LegP1W,
  777.         P2 = B1LegP2W,
  778.     }
  779.    
  780.     -- > Right Leg Front
  781.     local B1LegP1 = Part(Model2, CF, V3(1.5, 3, 1), "Grey", "SmoothPlastic", 0, false, false)
  782.     local B1LegP1W = Weld(Body, B1LegP1, CN(1, -.5, 1), CN(-1, .5, -1))
  783.     local B1LegP2 = Part(Model2, CF, V3(1.25, 3, 1), "Grey", "SmoothPlastic", 0, false, false)
  784.     local B1LegP2W = Weld(B1LegP1, B1LegP2, CN(0, -1.25, 0), CN(0, 1.25, 0))
  785.     local B1Paw = Part(Model2, CF, V3(1.5, .75, 1), "Grey", "SmoothPlastic", 0, false, false)
  786.     local B1PawW = Weld(B1LegP2, B1Paw, CN(.25, -.75, 0), CN(-.25, .75, 0))
  787.     RightFLeg = {
  788.         Paw = B1PawW,
  789.         P1 = B1LegP1W,
  790.         P2 = B1LegP2W,
  791.     }
  792.    
  793.     -- > Humanoid
  794.     local Lupin = New("Humanoid", Model2, { Name = "Lupin", MaxHealth = 1/0 })
  795.    
  796.     -- > Effects
  797.     Spawn(function()
  798.         for i = 1, 5 do
  799.             wait()
  800.             SphereExplode(Body.CFrame * CN(0, -3, 0), math.random(2, 6), "White")
  801.             CrownSpin(Body.CFrame * CN(0, -3, 0), math.random(5, 15), "White")
  802.             for _ = 1, 2 do
  803.                 BrickTo(Body.CFrame * CA(Random(1), Random(1), Random(1)), Body.CFrame * CN(Random(5), Random(5), Random(5)), math.random(2, 7), "White")
  804.             end
  805.         end
  806.     end)
  807.    
  808.     -- > Animations < --
  809.     local Loop
  810.     local Count = 0
  811.     local CountTime = 50
  812.     local Speed = .175
  813.     local LookAround = tick()
  814.     local Looks = 0
  815.     local IsLooking = false
  816.     local Slash1 = false
  817.     local Follow = true
  818.     local Target = nil
  819.     local Human = nil
  820.     local LastSlash = tick()
  821.    
  822.     SlashOne = function()
  823.         Slash1 = true
  824.         Attacking = true
  825.        
  826.         TweenWeld(BWeld, 0, BWeld.C0, CN(0, 2.5, 0) * CA(0, Pi/2, 0) * CN(0, 7.5, 0), 4, true)
  827.         TweenWeld(NeckW, 0, NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0) * CA(0, -Pi/4, Pi/24), 4, true)
  828.         TweenWeld(HandleW, 0, HandleW.C0, CA(Pi/4, 0, 0), 5, false)
  829.        
  830.         StartTrail(Blade, "Light red")
  831.         Slash1 = false
  832.         TweenWeld(BWeld, 0, BWeld.C0, CN(0, 2.5, 0) * CA(0, Pi/2, 0), 4, true)
  833.         TweenWeld(NeckW, 0, NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0) * CA(0, Pi/4, -Pi/24), 4, true)
  834.         TweenWeld(HandleW, 0, HandleW.C0, CA(Pi/1.25, 0, -Pi/3), 5, false)
  835.         DamageNearby(Handle.CFrame, 25, 10)
  836.         StopTrail()
  837.        
  838.         TweenWeld(NeckW, 0, NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0), 4, true)
  839.         TweenWeld(HandleW, 0, HandleW.C0, CA(Pi/2, 0, 0), 5, false)
  840.        
  841.         Attacking = false
  842.     end
  843.     ChangeFollow = function(TargetRequest, HumanRequest)
  844.         if not TargetRequest then
  845.             Follow = true
  846.             Target = nil
  847.             HumanRequest = nil
  848.         elseif TargetRequest and TargetRequest:IsA("Model") then
  849.             Target = TargetRequest
  850.             Human = HumanRequest
  851.             Follow = false
  852.         end
  853.     end
  854.     IsFollowing = function()
  855.         return Follow
  856.     end
  857.     Loop = game:service("RunService").Stepped:connect(function()
  858.         local RootMag = V3(FakeHRP.Velocity.X, 0, FakeHRP.Velocity.Z).magnitude
  859.         if RootMag > 2 then
  860.             if Follow then
  861.                 Mode = "Walking"
  862.                 Lupin.WalkSpeed = Humanoid.WalkSpeed
  863.             else
  864.                 Mode = "Running"
  865.                 Lupin.WalkSpeed = 75
  866.             end
  867.         elseif RootMag < 2 then
  868.             Mode = "Idle"
  869.         end
  870.         if Slash1 then Mode = "Jump" end
  871.         local CF = Torso.CFrame * CN(0, 0, 10)
  872.         if Follow then
  873.             Lupin:MoveTo(CF.p, workspace.Terrain)
  874.         else
  875.             if not Target or Human.Health == 0 then
  876.                 Follow = true
  877.                 Target = nil
  878.                 Human = nil
  879.             else
  880.                 local TargCF = Target:GetModelCFrame()
  881.                 local CF = CFrame.new(TargCF * CN(0, 0, 10).p, TargCF.p)
  882.                 Lupin:MoveTo(CF.p, workspace.Terrain)
  883.                 local Mag = (CF.p - Vector3.new(Stand.CFrame.X, CF.Y, Stand.CFrame.Z)).magnitude
  884.                 if Mag < 7.5 and not Attacking and (tick()-LastSlash) > 3 then
  885.                     game:service("Debris"):AddItem(New("BodyGyro", Stand, { maxTorque = V3(1, 1, 1) * 10^6, P = 10^4, cframe = CF }), 1)
  886.                     LastSlash = tick()
  887.                     Spawn(function() SlashOne() end)
  888.                 end
  889.             end
  890.         end
  891.         Count = (Count%CountTime)+Speed
  892.         local Sine = math.sin(Count)
  893.         if Mode == "Walking" then
  894.             CountTime = 50
  895.             Speed = .175
  896.            
  897.             RightFLeg.P1.C0 = cslerp(RightFLeg.P1.C0, CN(1, -.5, 1) * CA(0, 0, -Sine*.35), Speed)
  898.             RightFLeg.P2.C0 = cslerp(RightFLeg.P2.C0, CN(0, -1.25, 0) * CA(0, 0, -Sine*.25), Speed)
  899.             RightFLeg.Paw.C0 = cslerp(RightFLeg.Paw.C0, CN(.25, -.75, 0) * CA(0, 0, Sine*.5), Speed)
  900.            
  901.             LeftFLeg.P1.C0 = cslerp(LeftFLeg.P1.C0, CN(1, -.5, -1) * CA(0, 0, Sine*.35), Speed)
  902.             LeftFLeg.P2.C0 = cslerp(LeftFLeg.P2.C0, CN(0, -1.25, 0) * CA(0, 0, Sine*.25), Speed)
  903.             LeftFLeg.Paw.C0 = cslerp(LeftFLeg.Paw.C0, CN(.25, -.75, 0) * CA(0, 0, -Sine*.5), Speed)
  904.            
  905.             RightBLeg.P1.C0 = cslerp(RightBLeg.P1.C0, CN(-1, -.25, 1) * CA(0, 0, Sine*.15), Speed)
  906.             RightBLeg.P2.C0 = cslerp(RightBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0) * CA(0, 0, Sine*.15), Speed)
  907.             RightBLeg.P3.C0 = cslerp(RightBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0) * CA(0, 0, Sine*.15), Speed)
  908.             RightBLeg.Paw.C0 = cslerp(RightBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0) * CA(0, 0, -Sine*.15), Speed)
  909.            
  910.             LeftBLeg.P1.C0 = cslerp(LeftBLeg.P1.C0, CN(-1, -.25, -1) * CA(0, 0, -Sine*.15), Speed)
  911.             LeftBLeg.P2.C0 = cslerp(LeftBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0) * CA(0, 0, -Sine*.15), Speed)
  912.             LeftBLeg.P3.C0 = cslerp(LeftBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0) * CA(0, 0, -Sine*.15), Speed)
  913.             LeftBLeg.Paw.C0 = cslerp(LeftBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0) * CA(0, 0, Sine*.15), Speed)
  914.            
  915.             TailW.C0 = cslerp(TailW.C0, CA(0, 0, Pi/8) * CN(-2.5, .5, 0) * CA(0, Sine*.25, 0), Speed)
  916.             BTWeld.C0 = cslerp(BTWeld.C0, CN(1, 0, 0) * CA(0, Sine*.125, 0), Speed)
  917.  
  918.             if not Slash1 then NeckW.C0 = cslerp(NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0), Speed) end
  919.         elseif Mode == "Running" then
  920.             CountTime = 50
  921.             Speed = .4
  922.            
  923.             RightFLeg.P1.C0 = cslerp(RightFLeg.P1.C0, CN(1, -.5, 1) * CA(0, 0, -Sine*.35), Speed)
  924.             RightFLeg.P2.C0 = cslerp(RightFLeg.P2.C0, CN(0, -1.25, 0) * CA(0, 0, -Sine*.25), Speed)
  925.             RightFLeg.Paw.C0 = cslerp(RightFLeg.Paw.C0, CN(.25, -.75, 0) * CA(0, 0, -Sine*.5), Speed)
  926.            
  927.             LeftFLeg.P1.C0 = cslerp(LeftFLeg.P1.C0, CN(1, -.5, -1) * CA(0, 0, -Sine*.35), Speed)
  928.             LeftFLeg.P2.C0 = cslerp(LeftFLeg.P2.C0, CN(0, -1.25, 0) * CA(0, 0, -Sine*.25), Speed)
  929.             LeftFLeg.Paw.C0 = cslerp(LeftFLeg.Paw.C0, CN(.25, -.75, 0) * CA(0, 0, -Sine*.5), Speed)
  930.            
  931.             RightBLeg.P1.C0 = cslerp(RightBLeg.P1.C0, CN(-1, -.25, 1) * CA(0, 0, Sine*.25), Speed)
  932.             RightBLeg.P2.C0 = cslerp(RightBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0) * CA(0, 0, Sine*.25), Speed)
  933.             RightBLeg.P3.C0 = cslerp(RightBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0) * CA(0, 0, Sine*.25), Speed)
  934.             RightBLeg.Paw.C0 = cslerp(RightBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0) * CA(0, 0, Sine*.25), Speed)
  935.            
  936.             LeftBLeg.P1.C0 = cslerp(LeftBLeg.P1.C0, CN(-1, -.25, -1) * CA(0, 0, Sine*.25), Speed)
  937.             LeftBLeg.P2.C0 = cslerp(LeftBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0) * CA(0, 0, Sine*.25), Speed)
  938.             LeftBLeg.P3.C0 = cslerp(LeftBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0) * CA(0, 0, Sine*.25), Speed)
  939.             LeftBLeg.Paw.C0 = cslerp(LeftBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0) * CA(0, 0, Sine*.25), Speed)
  940.            
  941.             TailW.C0 = cslerp(TailW.C0, CA(0, 0, Pi/8) * CN(-2.5, .5, 0) * CA(0, Sine*.125, 0), Speed)
  942.             BTWeld.C0 = cslerp(BTWeld.C0, CN(1, 0, 0) * CA(0, Sine*.075, 0), Speed)
  943.  
  944.             if not Slash1 then NeckW.C0 = cslerp(NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0), Speed) end
  945.         elseif Mode == "Idle" then
  946.             CountTime = 75
  947.             Speed = .175
  948.        
  949.             RightFLeg.P1.C0 = cslerp(RightFLeg.P1.C0, CN(1, -.5, 1), Speed)
  950.             RightFLeg.P2.C0 = cslerp(RightFLeg.P2.C0, CN(0, -1.25, 0), Speed)
  951.             RightFLeg.Paw.C0 = cslerp(RightFLeg.Paw.C0, CN(.25, -.75, 0), Speed)
  952.            
  953.             LeftFLeg.P1.C0 = cslerp(LeftFLeg.P1.C0, CN(1, -.5, -1), Speed)
  954.             LeftFLeg.P2.C0 = cslerp(LeftFLeg.P2.C0, CN(0, -1.25, 0), Speed)
  955.             LeftFLeg.Paw.C0 = cslerp(LeftFLeg.Paw.C0, CN(.25, -.75, 0), Speed)
  956.            
  957.             RightBLeg.P1.C0 = cslerp(RightBLeg.P1.C0, CN(-1, -.25, 1), Speed)
  958.             RightBLeg.P2.C0 = cslerp(RightBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0), Speed)
  959.             RightBLeg.P3.C0 = cslerp(RightBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0), Speed)
  960.             RightBLeg.Paw.C0 = cslerp(RightBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0), Speed)
  961.            
  962.             LeftBLeg.P1.C0 = cslerp(LeftBLeg.P1.C0, CN(-1, -.25, -1), Speed)
  963.             LeftBLeg.P2.C0 = cslerp(LeftBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0), Speed)
  964.             LeftBLeg.P3.C0 = cslerp(LeftBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0), Speed)
  965.             LeftBLeg.Paw.C0 = cslerp(LeftBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0), Speed)
  966.            
  967.             TailW.C0 = cslerp(TailW.C0, CA(0, 0, Pi/8) * CN(-2.5, .5, 0), Speed)
  968.             BTWeld.C0 = cslerp(BTWeld.C0, CN(1, 0, 0), Speed)
  969.            
  970.             if (tick()-LookAround) > 7.5 and not IsLooking then
  971.                 IsLooking = true
  972.                 Looks = Looks + 1
  973.             elseif (tick()-LookAround) > 10 then
  974.                 IsLooking = false
  975.                 LookAround = tick()
  976.             end
  977.             if not Slash1 then NeckW.C0 = cslerp(NeckW.C0, CA(0, 0, Pi/8) * CN(.75, 0, 0) * CA(0, IsLooking and (Looks % 2 == 0 and -.375 or .375) or 0, 0), Speed) end
  978.         elseif Mode == "Jump" then
  979.             CountTime = 50
  980.             Speed = .75
  981.        
  982.             RightFLeg.P1.C0 = cslerp(RightFLeg.P1.C0, CN(1, -.5, 1) * CA(0, 0, Pi/5), Speed)
  983.             RightFLeg.P2.C0 = cslerp(RightFLeg.P2.C0, CN(0, -1.25, 0), Speed)
  984.             RightFLeg.Paw.C0 = cslerp(RightFLeg.Paw.C0, CN(.25, -.75, 0), Speed)
  985.            
  986.             LeftFLeg.P1.C0 = cslerp(LeftFLeg.P1.C0, CN(1, -.5, -1) * CA(0, 0, Pi/5), Speed)
  987.             LeftFLeg.P2.C0 = cslerp(LeftFLeg.P2.C0, CN(0, -1.25, 0), Speed)
  988.             LeftFLeg.Paw.C0 = cslerp(LeftFLeg.Paw.C0, CN(.25, -.75, 0), Speed)
  989.            
  990.             RightBLeg.P1.C0 = cslerp(RightBLeg.P1.C0, CN(-1, -.25, 1) * CA(0, 0, -Pi/5), Speed)
  991.             RightBLeg.P2.C0 = cslerp(RightBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0), Speed)
  992.             RightBLeg.P3.C0 = cslerp(RightBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0), Speed)
  993.             RightBLeg.Paw.C0 = cslerp(RightBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0), Speed)
  994.            
  995.             LeftBLeg.P1.C0 = cslerp(LeftBLeg.P1.C0, CN(-1, -.25, -1) * CA(0, 0, -Pi/5), Speed)
  996.             LeftBLeg.P2.C0 = cslerp(LeftBLeg.P2.C0, CA(0, 0, -Pi/6) * CN(0, -.75, 0), Speed)
  997.             LeftBLeg.P3.C0 = cslerp(LeftBLeg.P3.C0, CA(0, 0, Pi/7) * CN(0, -1, 0), Speed)
  998.             LeftBLeg.Paw.C0 = cslerp(LeftBLeg.Paw.C0, CA(0, 0, Pi/18) * CN(0, -.75, 0), Speed)
  999.            
  1000.             TailW.C0 = cslerp(TailW.C0, CA(0, 0, Pi/8) * CN(-2.5, .5, 0), Speed)
  1001.             BTWeld.C0 = cslerp(BTWeld.C0, CN(1, 0, 0), Speed)
  1002.         end
  1003.     end)
  1004.    
  1005.     Spawn(function()
  1006.         repeat wait() until not WolfOn
  1007.         DiamondExplode(Body.CFrame * CA(Random(1), Random(1), Random(1)), 5, "White")
  1008.     end)
  1009.    
  1010.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(-.125, 0 , 0) * CA(0, 0, Pi/16), 5, true)
  1011.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), 5, false)
  1012.     wait()
  1013.     Attacking = false
  1014. end
  1015. function Unwolf()
  1016.     Attacking = true
  1017.     HandleW.Part0 = RA
  1018.     HandleW.C0 = CN(0, 0, -.5)
  1019.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(-.125, 0 , 0) * CA(Pi/1.625, 0, Pi/8), 5, true)
  1020.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), 5, false)
  1021.     Model2:FindFirstChild("Stand"):Destroy()
  1022.     WolfOn = false
  1023.     Attacking = false
  1024. end
  1025. function Slash1()
  1026.     Attacking = true
  1027.     TweenWeld(TW, 0, TW.C0, C0.TW * CA(0, -Pi/5, 0), 7, true)
  1028.     TweenWeld(NK, 0, NK.C0, C0.NK * CA(0, Pi/5, 0), 7, true)
  1029.     TweenWeld(RS, 0, RS.C0, C0.RS * CA(Pi/1.75, 0, Pi/10), 7, true)
  1030.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(.75, 0, 0) * CA(Pi/2, 0, Pi/3), 7, false)
  1031.     StartTrail(Blade, "Light red")
  1032.     wait()
  1033.     TweenWeld(HandleW, 0, HandleW.C0, C0.HW * CN(0, -.75, 0) * CA(0, 0, -Pi), 4, true)
  1034.     TweenWeld(TW, 0, TW.C0, C0.TW * CA(0, Pi/3, 0), 4, true)
  1035.     TweenWeld(NK, 0, NK.C0, C0.NK * CA(0, -Pi/3, 0), 4, true)
  1036.     TweenWeld(RS, 0, RS.C0, C0.RS * CA(Pi/2.25, 0, 0), 4, true)
  1037.     TweenWeld(LS, 0, LS.C0, C0.LS * CA(Pi/2.75, 0, Pi/4), 4, false)
  1038.     DamageNearby(Handle.CFrame, 10, 10)
  1039.     StopTrail()
  1040.     wait()
  1041.     ReturnToDefault(7)
  1042.     wait()
  1043.     Attacking = false
  1044. end
  1045. function DRAGAWN()
  1046.     Attacking = true
  1047.     HandleW.Parent = nil
  1048.     local DragonMesh = Asset .. "58430372"
  1049.     local CF0 = CN(Torso.CFrame.X, Torso.CFrame.Y, Torso.CFrame.Z)
  1050.     local HBP = New("BodyPosition", Handle, { maxForce = V3(math.huge, math.huge, math.huge), position = (CF0 * CN(0, 10, 0)).p })
  1051.     local HBG = New("BodyGyro", Handle, { P = 10^4, maxTorque = V3(1, 1, 1) * 10 ^ 6, cframe = CF0 })
  1052.     local HRPBG = New("BodyGyro", HRP, { P = 10^4, maxTorque = V3(1, 1, 1) * 10 ^ 6, cframe = HRP.CFrame })
  1053.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(.375, 0, -.5) * CA(Pi/2, 0, Pi/2), 5, true)
  1054.     TweenWeld(NK, 0, NK.C0, C0.NK * CA(0, -Pi/2, 0), 5, true)
  1055.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(0, 0, 0) * CA(0, 0, -Pi/16), 5, false)
  1056.     local Going = true
  1057.     local Hit = nil
  1058.     Spawn(function()
  1059.         while wait() and Going do
  1060.             Hit = Mouse.Hit
  1061.             local CF0 = CN(Torso.CFrame.X, Torso.CFrame.Y, Torso.CFrame.Z)
  1062.             local POS = (CF0 * CN(0, 10, 0)).p
  1063.             HBG.cframe = CN(Handle.CFrame.p, Hit.p) * CA(-Pi/2, 0, 0)
  1064.             HBP.position = POS
  1065.             HRPBG.cframe = CN(HRP.CFrame.p, V3(Hit.X, HRP.CFrame.Y, Hit.Z)) * CA(0, Pi/2, 0)
  1066.             Glitter(Blade.CFrame * CN(Random(10), Random(10), Random(10)), "Phosph. White", .25)
  1067.         end
  1068.     end)
  1069.     Mouse.Button1Down:wait()
  1070.     Going = false
  1071.     HRPBG.cframe = CN(HRP.CFrame.p, V3(Hit.X, HRP.CFrame.Y, Hit.Z))
  1072.     TweenWeld(RS, 0, RS.C0, C0.RS * CN(0, .5, 0) * CA(Pi/1.25, 0, Pi/8), 5, true)
  1073.     TweenWeld(NK, 0, NK.C0, C0.NK, 5, true)
  1074.     TweenWeld(LS, 0, LS.C0, C0.LS * CN(0, .5, 0) * CA(Pi/1.25, 0, -Pi/8), 5, false)
  1075.     local DragonHead = Part(workspace, Blade.CFrame * CA(Pi/2, 0, 0), V3(5, 20, 10), "Bright violet", "SmoothPlastic", 1, true, false)
  1076.     local DHCF = DragonHead.CFrame * CN(0, 0, -10) * CA(-Pi/2, 0, 0)
  1077.     DragonHead.CFrame = DragonHead.CFrame * CN(0, 2.5, 0)
  1078.     local Mag = (Hit.p - DHCF * CN(0, 5, 0).p).magnitude
  1079.     local BP1 = Part(workspace, CN(DHCF.p, Hit.p) * CN(0, 0, -Mag/2) * CA(0, Pi/2, 0), V3(Mag, 7.5, 7.5), "Bright violet", "SmoothPlastic", 1, true, false)
  1080.     local BP2 = Part(workspace, CN(DHCF.p, Hit.p) * CN(0, 0, -Mag/2) * CA(0, Pi/2, 0), V3(Mag, 5, 5), "Phosph. White", "SmoothPlastic", 1, true, false)
  1081.     New("SpecialMesh", BP1, { MeshType = "Cylinder" })
  1082.     New("SpecialMesh", BP2, { MeshType = "Cylinder" })
  1083.     New("FileMesh", DragonHead, { Scale = V3(7.5, 7.5, 7.5), MeshId = DragonMesh })
  1084.     local Amount = math.random(10, 20)
  1085.     Spawn(function()
  1086.         for i = 1, .3, -.15 do
  1087.             wait()
  1088.             BP1.Transparency = i
  1089.             BP2.Transparency = i
  1090.             DragonHead.Transparency = i
  1091.         end
  1092.         BP1.Transparency = .3
  1093.         BP2.Transparency = .3
  1094.         DragonHead.Transparency = .3
  1095.     end)
  1096.     Delay(Amount*wait(.1), function()
  1097.         for i = 0.3, 1.05, .05 do
  1098.             DragonHead.Transparency = i
  1099.             BP1.Transparency = i
  1100.             BP2.Transparency = i
  1101.             wait()
  1102.         end
  1103.         DragonHead:Destroy()
  1104.         BP1:Destroy()
  1105.         BP2:Destroy()
  1106.     end)
  1107.     for i = 1, Amount do
  1108.         local Size = math.random(10, 20)
  1109.         DiamondExplode(Torso.CFrame * CN(Random(10), -Size, Random(10)), Size, "Bright violet")
  1110.         SpikeUp(Torso.CFrame * CA(Random(Pi/8), 0, Random(Pi/8)) * CN(Random(20), -Size, Random(20)), Size, "Bright violet")
  1111.         SphereExplode(Hit, 5, "Bright violet")
  1112.         DiamondExplode(Hit, 1, "Phosph. White")
  1113.         Delay(Random(.1), function() CrownSpin(DHCF, 10, "Bright violet") end)
  1114.         DamageNearby(Hit, 7.5, 7.5)
  1115.         wait(.1)
  1116.     end
  1117.     Shooting = false
  1118.     wait()
  1119.     HBG:Destroy()
  1120.     HBP:Destroy()
  1121.     HRPBG:Destroy()
  1122.     HandleW.Parent = Model
  1123.     HandleW.Part0 = RA
  1124.     HandleW.C0 = CN(0, 0, -.5)
  1125.     ReturnToDefault(10)
  1126.     wait()
  1127.     Attacking = false
  1128. end
  1129.  
  1130. -----------------------------------------------------------------------------------------------------
  1131.  
  1132. TW = HRP:WaitForChild("RootJoint")
  1133. NK = Weld(Torso, Head, C0.NK, C1.NK)
  1134. Equip = function(Mouse)
  1135.     if not SpiritOn and not WolfOn and not Attacking and not SwordInactive then
  1136.         HandleW.Part0 = RA
  1137.         HandleW.C0 = CN(0, 0, -.5)
  1138.         OLS.Parent = nil
  1139.         ORS.Parent = nil
  1140.         TW.C0 = CN()
  1141.         TW.C1 = CN()
  1142.         RS = Weld(Torso, RA, C0.RS * CN(-.125, 0 , 0) * CA(Pi/1.625, 0, Pi/8), C1.RS)
  1143.         LS = Weld(Torso, LA, C0.LS * CN(.125, 0 , 0) * CA(0, 0, -Pi/16), C1.LS)
  1144.     end
  1145.     Mouse.Button1Down:connect(function()
  1146.         if Attacking then return end
  1147.         if not SpiritOn and not WolfOn then Slash1() end
  1148.         if WolfOn and IsFollowing() then
  1149.             pcall(SlashOne)
  1150.         end
  1151.     end)
  1152.     Mouse.KeyDown:connect(function(Key)
  1153.         Key:lower()
  1154.         if Attacking then return end
  1155.         if not SwordInactive then
  1156.             if Key == "f" and not SpiritOn and not WolfOn then
  1157.                 Spirit()
  1158.             elseif Key == "f" and SpiritOn and not WolfOn then
  1159.                 Unspirit()
  1160.             elseif Key == "q" and SpiritOn and not WolfOn then
  1161.                 _SpiritEvent:fire("Slam")
  1162.             elseif Key == "e" and SpiritOn and not WolfOn then
  1163.                 _SpiritEvent:fire("Throw")
  1164.             elseif Key == "q" and not SpiritOn and not WolfOn then
  1165.                 DRAGAWN()
  1166.             elseif Key == "e" and not SpiritOn and not WolfOn then
  1167.                 Wolf()
  1168.             elseif Key == "e" and not SpiritOn and WolfOn then
  1169.                 Unwolf()
  1170.             elseif Key == "r" and not SpiritOn and WolfOn then
  1171.                 local Target = Mouse.Target
  1172.                 if Target.Parent:FindFirstChild("Torso") then
  1173.                     local Hum
  1174.                     for i, v in pairs(Target.Parent:children()) do
  1175.                         if v:IsA("Humanoid") then
  1176.                             Hum = v
  1177.                             break
  1178.                         end
  1179.                     end
  1180.                     if Hum then
  1181.                         ChangeFollow(Target.Parent, Hum)
  1182.                     end
  1183.                 else
  1184.                     ChangeFollow()
  1185.                 end
  1186.             end
  1187.         else
  1188.            
  1189.         end
  1190.     end)
  1191. end
  1192. Unequip = function()
  1193.     if SpiritOn or WolfOn or SwordInactive then return end
  1194.     if Attacking then
  1195.         repeat wait() until not Attacking
  1196.     end
  1197.     RS:Destroy()
  1198.     LS:Destroy()
  1199.     OLS.Parent = Torso
  1200.     OLS.Part0, OLS.Part1 = Torso, LA
  1201.     ORS.Parent = Torso
  1202.     ORS.Part0, ORS.Part1 = Torso, RA
  1203.     TW.C0 = C0.TW
  1204.     NK.C0 = C0.NK
  1205.     HandleW.Part0 = Torso
  1206.     HandleW.C0 = CN(1, -1, .5) * CA(0, 0, Pi/4)
  1207. end
  1208. pcall(game.Destroy, Backpack:FindFirstChild("Sword"))
  1209. Tool = New("HopperBin", Backpack, { Name = "Sword" })
  1210. Tool.Selected:connect(Equip)
  1211. Tool.Deselected:connect(Unequip)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement