Advertisement
AgentVK

okthen IDK

Dec 20th, 2017
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Retributor, without all the fun stuff. Just the coat.
  2.  
  3. ---AgentVKNoob
  4.  
  5. wait(0.5)
  6. Player=game:GetService("Players").LocalPlayer
  7. Character=Player.Character
  8. PlayerGui=Player.PlayerGui
  9. Backpack=Player.Backpack
  10. Torso=Character.Torso
  11. Head=Character.Head
  12. Humanoid=Character.Humanoid
  13. m=Instance.new('Model',Character)
  14. LeftArm=Character["Left Arm"]
  15. LeftLeg=Character["Left Leg"]
  16. RightArm=Character["Right Arm"]
  17. RightLeg=Character["Right Leg"]
  18. LS=Torso["Left Shoulder"]
  19. LH=Torso["Left Hip"]
  20. RS=Torso["Right Shoulder"]
  21. RH=Torso["Right Hip"]
  22. Face = Head.face
  23. Neck=Torso.Neck
  24. it=Instance.new
  25. attacktype=1
  26. vt=Vector3.new
  27. cf=CFrame.new
  28. euler=CFrame.fromEulerAnglesXYZ
  29. angles=CFrame.Angles
  30. cloaked=false
  31. necko=cf(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  32. necko2=cf(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  33. LHC0=cf(-1,-1,0,-0,-0,-1,0,1,0,1,0,0)
  34. LHC1=cf(-0.5,1,0,-0,-0,-1,0,1,0,1,0,0)
  35. RHC0=cf(1,-1,0,0,0,1,0,1,0,-1,-0,-0)
  36. RHC1=cf(0.5,1,0,0,0,1,0,1,0,-1,-0,-0)
  37. RootPart=Character.HumanoidRootPart
  38. RootJoint=RootPart.RootJoint
  39. RootCF=euler(-1.57,0,3.14)
  40. attack = false
  41. attackdebounce = false
  42. deb=false
  43. equipped=true
  44. hand=false
  45. MMouse=nil
  46. combo=0
  47. trispeed=.2
  48. attackmode='none'
  49. local idle=0
  50. local Anim="Idle"
  51.  
  52. it = Instance.new
  53.  
  54. local part = function(name,parent,brkclr,mtrl,rfl,trns,sz)
  55. local prt = it("Part",parent)
  56. prt.Name = name
  57. prt.CanCollide = false
  58. prt.BrickColor = BrickColor.new(brkclr)
  59. if brkclr == "Really black" and mtrl == "Neon" then prt.Color = Color3.new(0,0,0) end
  60. prt.Material = mtrl
  61. prt.Reflectance = rfl
  62. prt.Transparency = trns
  63. prt.Size = sz
  64. prt.Anchored = true
  65. return prt
  66. end
  67. local mesh = function(meshtype,parent,meshid,textureid,scale)
  68. local msh = it("SpecialMesh",parent)
  69. if meshtype == "FileMesh" then
  70. msh.MeshId = meshid
  71. msh.TextureId = textureid
  72. end
  73. msh.MeshType = meshtype
  74. msh.Scale = scale
  75. return(msh)
  76. end
  77. local weld = function(part1,part2,x1,y1,z1,x2,y2,z2)
  78. local w = it("Weld",part1)
  79. w.Part0 = part1
  80. w.Part1 = part2
  81. if part1.Anchored or part2.Anchored then
  82. part1.Anchored = false
  83. part2.Anchored = false
  84. end
  85. w.C0 = (CFrame.new(x1,y1,z1)*CFrame.Angles(math.rad(z2),math.rad(y2),math.rad(x2)))
  86. return(w)
  87. end
  88. local emit = function(parent,tex,startcolor, endcolor, startsize,endsize,lightem,emdir,lif,rate,speed,rotspeed,sprdang)
  89. local emm = it("ParticleEmitter",parent)
  90. emm.Texture = tex
  91. emm.Color = ColorSequence.new({ColorSequenceKeypoint.new(0,startcolor),ColorSequenceKeypoint.new(1,endcolor)})
  92. emm.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,startsize),NumberSequenceKeypoint.new(1,endsize)})
  93. emm.LightEmission = lightem
  94. emm.EmissionDirection = emdir
  95. emm.Lifetime = NumberRange.new(lif)
  96. emm.Rate = rate
  97. emm.Speed = NumberRange.new(speed)
  98. emm.RotSpeed = NumberRange.new(rotspeed)
  99. emm.SpreadAngle = Vector2.new(sprdang,sprdang)
  100. return(emm)
  101. end
  102.  
  103. eye = part("Eye",m,"Really red","Neon",0,0,Vector3.new(0.08,0.175,0.05))
  104. mesh("Sphere",eye,"","",Vector3.new(1,1,1))
  105. weld(Head,eye,-0.11,0.2625,-0.59,0,0,0)
  106.  
  107. p = part("Collar1",m,"Black","Sand",0,0,Vector3.new(1,1,1))
  108. weld(Torso,p,0,1.15,0,0,22.5,190)
  109. mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
  110. p = part("Collar2",m,"Black","Sand",0,0,Vector3.new(1,1,1))
  111. weld(Torso,p,0,1.15,0,0,-22.5,190)
  112. mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
  113. p = part("Collar3",m,"Black","Sand",0,0,Vector3.new(1,1,1))
  114. weld(Torso,p,0,0.9,0.1,0,0,-15)
  115. mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
  116.  
  117.  
  118. p = part("Coat1",m,"Black","Sand",0,0,Vector3.new(2.05,1.55,1.05))
  119. weld(Torso,p,0,0.25,0,0,0,0)
  120. p = part("Coat2",m,"Black","Sand",0,0,Vector3.new(0.55,2.05,1.04))
  121. weld(Torso,p,1,-1.25,0,22,0,0)
  122. p = part("Coat3",m,"Black","Sand",0,0,Vector3.new(0.55,2.05,1.04))
  123. weld(Torso,p,-1,-1.25,0,-22,0,0)
  124. p = part("Coat4",m,"Black","Sand",0,0,Vector3.new(2.1,1.05,0.54))
  125. weld(Torso,p,0,-1,0.24,0,0,0)
  126. p = part("Coat5",m,"Black","Sand",0,0,Vector3.new(0.925,0.75,0.54))
  127. mesh("Wedge",p,"","",Vector3.new(1,1,1))
  128. weld(Torso,p,0.3,-0.75,-0.05,90,0,-90)
  129. p = part("Coat6",m,"Black","Sand",0,0,Vector3.new(0.925,0.75,0.54))
  130. mesh("Wedge",p,"","",Vector3.new(1,1,1))
  131. weld(Torso,p,-0.3,-0.75,-0.05,-90,0,-90)
  132. p = part("Coat7",m,"Black","Sand",0,0,Vector3.new(0.975,0.5,0.75))
  133. mesh("Wedge",p,"","",Vector3.new(1,1,1))
  134. weld(Torso,p,-1.4,-2.45,0,90,0,-90)
  135. p = part("Coat8",m,"Black","Sand",0,0,Vector3.new(0.975,0.5,0.75))
  136. mesh("Wedge",p,"","",Vector3.new(1,1,1))
  137. weld(Torso,p,1.4,-2.45,0,-90,0,-90)
  138. p = part("Coat9",m,"Black","Sand",0,0,Vector3.new(1.05,0.5,0.525))
  139. weld(RightLeg,p,0,0.75,0.25,0,0,0)
  140. p = part("Coat10",m,"Black","Sand",0,0,Vector3.new(1.05,0.5,0.525))
  141. weld(LeftLeg,p,0,0.75,0.25,0,0,0)
  142.  
  143. p = part("Sleeves1",m,"Black","Granite",0,0,Vector3.new(1.1,0.5,1.1))
  144. weld(LeftArm,p,0,0.875,0,0,0,0)
  145. p = part("Sleeves2",m,"Black","Sand",0,0,Vector3.new(1.05,1.5,1.05))
  146. weld(LeftArm,p,0,0.25,0,0,0,0)
  147. p = part("Sleeves3",m,"Really red","Neon",0,0,Vector3.new(0.25,0.5,0.5))
  148. mesh("Cylinder",p,"","",Vector3.new(1,1,1))
  149. weld(LeftArm,p,-0.41,0.15,0,0,0,0)
  150. p = part("Sleeves4",m,"Really red","Neon",0,0,Vector3.new(0.25,0.075,0.075))
  151. mesh("Cylinder",p,"","",Vector3.new(1,1,1))
  152. weld(LeftArm,p,-0.44,0.15,0,0,0,0)
  153. p = part("Sleeves5",m,"Black","Sand",0,0,Vector3.new(0.25,0.375,0.375))
  154. mesh("Cylinder",p,"","",Vector3.new(1,1,1))
  155. weld(LeftArm,p,-0.43,0.15,0,0,0,0)
  156. p = part("Sleeves6",m,"Black","Sand",0,0,Vector3.new(0.25,0.75,0.075))
  157. weld(LeftArm,p,-0.42,0.2,0.0375,0,0,-45)
  158. p = part("Sleeves7",m,"Black","Sand",0,0,Vector3.new(0.25,0.75,0.075))
  159. weld(LeftArm,p,-0.42,0.1,-0.0375,0,0,-45)
  160. p = part("Sleeves8",m,"Black","Granite",0,0,Vector3.new(1.1,0.25,1.1))
  161. weld(LeftArm,p,0,-0.4,0,0,0,0)
  162. p = part("Sleeves9",m,"Black","Granite",0,0,Vector3.new(1.1,0.5,1.1))
  163. weld(RightArm,p,0,0.875,0,0,0,0)
  164.  
  165.  
  166. function weld(p0,p1,c0,c1,par)
  167. local w = Instance.new("Weld",p0 or par)
  168. w.Part0 = p0
  169. w.Part1 = p1
  170. w.C0 = c0 or CFrame.new()
  171. w.C1 = c1 or CFrame.new()
  172. return w
  173. end
  174. local motors = {}
  175. function motor(p0,p1,c0,c1,des,vel,par)
  176. local w = Instance.new("Motor6D",p0 or par)
  177. w.Part0 = p0
  178. w.Part1 = p1
  179. w.C0 = c0 or CFrame.new()
  180. w.C1 = c1 or CFrame.new()
  181. w.MaxVelocity = tonumber(vel) or .05
  182. w.DesiredAngle = tonumber(des) or 0
  183. return w
  184. end
  185.  
  186. function lerp(a,b,c)
  187. return a+(b-a)*c
  188. end
  189.  
  190. function ctlerp(c1,c2,al)
  191. local com1 = {c1:components()}
  192. local com2 = {c2:components()}
  193. for i,v in pairs(com1) do
  194. com1[i] = lerp(v,com2[i],al)
  195. end
  196. return CFrame.new(unpack(com1))
  197. end
  198.  
  199. do
  200. local function QuaternionFromCFrame(cf)
  201. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  202. local trace = m00 + m11 + m22
  203. if trace > 0 then
  204. local s = math.sqrt(1 + trace)
  205. local recip = 0.5/s
  206. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  207. 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 local 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 local 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 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 end
  208. function tickwave(time,length,offset) return (math.abs((tick()+(offset or 0))%time-time/2)*2-time/2)/time/2*length end function invcol(c) c = c.Color return BrickColor.new(Color3.new(1-c.b,1-c.g,1-c.r)) end local oc = oc or function(...) return ... end local plr = game.Players.LocalPlayer local char = plr.Character local tor = char.Torso local hum = char.Humanoid local vel = Vector3.new() local cf = CFrame.new() local flspd = 0 local keysdown = {} local keypressed = {} local ktime = {} local descendtimer = 0 local possiblefly = 0 local cam = workspace.CurrentCamera local flying = false local moving = false hum.PlatformStand = false local winghats = {"Wings","Angel","EmpyreanreignmentII"} for _,o in pairs(char:GetChildren()) do for i,v in pairs(winghats) do if o.Name:lower() == v:lower() then o:Destroy() end end end local mod = Instance.new("Model",char) mod.Name = "Wings" local topcolor = BrickColor.new("Really black") local feacolor = topcolor local ptrans = 0 local pref = 0 local fire = false local fmcol = Color3.new() local fscol = Color3.new() local part = Instance.new("Part") part.Locked = true part.FormFactor = "Custom" part.Size = Vector3.new(.2,.2,.2) part.TopSurface,part.BottomSurface = 0,0 part.CanCollide = false part.BrickColor = topcolor part.Transparency = ptrans part.Reflectance = pref local ef = Instance.new("Fire",fire and part or nil) ef.Size = .15 ef.Color = fmcol or Color3.new() ef.SecondaryColor = fscol or Color3.new() part:BreakJoints() function newpart() local clone = part:Clone() clone.Parent = mod clone:BreakJoints() return clone end local feath = newpart() feath.BrickColor = feacolor Instance.new("SpecialMesh",feath).MeshType = "Sphere" function newfeather() local clone = feath:Clone() clone.Parent = mod clone:BreakJoints() return clone end local r1 = newpart() r1.Size = Vector3.new(.3,1.5,.3)*1.2 local rm1 = motor(tor,r1,CFrame.new(.35,.6,.4) * CFrame.Angles(0,0,math.rad(-60)) * CFrame.Angles(math.rad(30),math.rad(-25),0),CFrame.new(0,-.8,0),.1)
  209. local r2 = newpart() r2.Size = Vector3.new(.4,1.8,.4)*1.2 local rm2 = motor(r1,r2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(-30),math.rad(15),0),CFrame.new(0,-.9,0),.1) local r3 = newpart() r3.Size = Vector3.new(.3,2.2,.3)*1.2 local rm3 = motor(r2,r3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-1.1,0),.1) local r4 = newpart() r4.Size = Vector3.new(.25,1.2,.25)*1.2 local rm4 = motor(r3,r4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-.6,0),.1) local feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,3,.3) weld(r4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,2.3,.3) weld(r4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.35,2.2,.25) weld(r4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0)) local rf3 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2,.35) table.insert(rf3,motor(r3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0))) end local rf2 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2-i*.08,.3) table.insert(rf2,motor(r2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0))) end local rf1 = {} for i=0,6 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.37,1.65-i*.06,.25)
  210. table.insert(rf1,motor(r1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0))) end local l1 = newpart() l1.Size = Vector3.new(.3,1.5,.3)*1.2 local lm1 = motor(tor,l1,CFrame.new(-.35,.6,.4) * CFrame.Angles(0,0,math.rad(60)) * CFrame.Angles(math.rad(30),math.rad(25),0) * CFrame.Angles(0,-math.pi,0),CFrame.new(0,-.8,0) ,.1) local l2 = newpart() l2.Size = Vector3.new(.4,1.8,.4)*1.2 local lm2 = motor(l1,l2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(30),math.rad(-15),0),CFrame.new(0,-.9,0),.1) local l3 = newpart() l3.Size = Vector3.new(.3,2.2,.3)*1.2 local lm3 = motor(l2,l3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-1.1,0),.1) local l4 = newpart() l4.Size = Vector3.new(.25,1.2,.25)*1.2 local lm4 = motor(l3,l4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-.6,0),.1) local feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,3,.3) weld(l4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,2.3,.3) weld(l4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.35,2.2,.25) weld(l4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0)) local lf3 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2,.35) table.insert(lf3,motor(l3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0))) end local lf2 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2-i*.08,.3)
  211. table.insert(lf2,motor(l2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0))) end local lf1 = {} for i=0,6 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.37,1.65-i*.06,.25) table.insert(lf1,motor(l1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0))) end local rwing = {rm1,rm2,rm3,rm4} local lwing = {lm1,lm2,lm3,lm4} local oc0 = {} for i,v in pairs(rwing) do oc0[v] = v.C0 end for i,v in pairs(lwing) do oc0[v] = v.C0 end function gotResized() if lastsize then if tor.Size == lastsize then return end local scaleVec = tor.Size/lastsize for i,v in pairs(oc0) do oc0[i] = v-v.p+scaleVec*v.p end lastsize = tor.Size end lastsize = tor.Size end tor.Changed:connect(function(p) if p == "Size" then gotResized() end end) gotResized() local idle = {0,0.5,-.2,0; .05,.05,.1,.05; -.6,-1.5,.1,0;} local outlow = {-.7,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0} local outhigh = {.5,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0} local outnormal = {0,-.2,1.8,0; .05,.05,.1,.05; -.3,0,0,0} local veryhigh = {.9,-.3,1.9,0; .3,.05,.1,.05; .2,0,0,0} local flap1 = {-.3,.3,1.1,-.2; .3,.05,.1,.05; -.2,-.6,0,0} local divebomb = {0,.2,.4,-.7; .3,.05,.1,.05; 0,-.5,-.6,0} function setwings(tab,time) time = time or 10 for i=1,4 do rwing[i].DesiredAngle = tab[i] lwing[i].DesiredAngle = tab[i] rwing[i].MaxVelocity = math.abs(tab[i]-rwing[i].CurrentAngle)/time lwing[i].MaxVelocity = math.abs(tab[i]-lwing[i].CurrentAngle)/time local rcf = oc0[rwing[i]] * (tab[12+i] or CFrame.new()) local lcf = oc0[lwing[i]] * (tab[12+i] or CFrame.new()) end for i,v in pairs(rf1) do v.DesiredAngle = tab[9] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf1) do v.DesiredAngle = tab[9] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(rf2) do v.DesiredAngle = tab[10] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf2) do v.DesiredAngle = tab[10]
  212. v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(rf3) do v.DesiredAngle = tab[11] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf3) do v.DesiredAngle = tab[11] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end end setwings(outhigh,1) for i,v in pairs(tor:GetChildren()) do if v.ClassName:lower():match("body") then v:Destroy() end end local ctor = tor:Clone() ctor:ClearAllChildren() ctor.Name = "cTorso" ctor.Transparency = 1 ctor.CanCollide = false ctor.FormFactor = "Custom" ctor.Size = Vector3.new(.2,.2,.2) ctor.Parent = mod weld(tor,ctor) local bg = Instance.new("BodyGyro",ctor) bg.maxTorque = Vector3.new() bg.P = 15000 bg.D = 1000 local bv = Instance.new("BodyVelocity",ctor) bv.maxForce = Vector3.new() bv.P = 15000 kd = plr:GetMouse().KeyDown:connect(oc(function(key) keysdown[key] = true keypressed[key] = true if key == "2" then descendtimer = tick() elseif key == " " and tick()-(ktime[key] or 0) < .5 then possiblefly = tick() elseif (key == "a" or key == "d") and ktime[key] and tick()-ktime[key] < .3 and math.abs(reqrotx) < .3 then reqrotx = key == "a" and math.pi*2 or -math.pi*2 end ktime[key] = tick() end)) ku = plr:GetMouse().KeyUp:connect(function(key) keysdown[key] = false if key == " " then descendtimer = tick() end end) function mid(a,b,c) return math.max(a,math.min(b,c or -a)) end function bn(a) return a and 1 or 0 end function gm(tar) local m = 0 for i,v in pairs(tar:GetChildren()) do if v:IsA("BasePart") then m = m + v:GetMass() end m = m + gm(v) end return m end reqrotx = 0 local grav = 196.2 local flyspeed = 80 local maxspeed = 150 local con con = game:GetService("RunService").Stepped:connect(oc(function() if not mod:IsDescendantOf(workspace) then pcall(function() kd:disconnect() end) pcall(function() ku:disconnect() end) bg:Destroy() bv:Destroy() con:disconnect() hum.PlatformStand = false return end
  213. local obvel = tor.CFrame:vectorToObjectSpace(tor.Velocity) local sspd, uspd,fspd = obvel.X,obvel.Y,obvel.Z if flying then local lfldir = fldir fldir = cam.CoordinateFrame:vectorToWorldSpace(Vector3.new(bn(keysdown.d)-bn(keysdown.a),0,bn(keysdown.s)-bn(keysdown.w))).unit local lmoving = moving moving = fldir.magnitude > .1 if lmoving and not moving then idledir = lfldir*Vector3.new(1,0,1) descendtimer = tick() end local dbomb = fldir.Y < -.6 or (moving and keysdown["0"]) if moving and keysdown["0"] and lmoving then fldir = (Vector3.new(lfldir.X,math.min(fldir.Y,lfldir.Y+.01)-.1,lfldir.Z)+(fldir*Vector3.new(1,0,1))*.05).unit end local down = tor.CFrame:vectorToWorldSpace(Vector3.new(0,-1,0)) local descending = (not moving and keysdown["2"] and not keysdown[" "]) cf = ctlerp(cf,CFrame.new(tor.Position,tor.Position+(not moving and idledir or fldir)),keysdown["0"] and .02 or .07) local gdown = not dbomb and cf.lookVector.Y < -.2 and tor.Velocity.unit.Y < .05 hum.PlatformStand = true bg.maxTorque = Vector3.new(1,1,1)*9e5 local rotvel = CFrame.new(Vector3.new(),tor.Velocity):toObjectSpace(CFrame.new(Vector3.new(),fldir)).lookVector bg.cframe = cf * CFrame.Angles(not moving and -.1 or -math.pi/2+.2,moving and mid(-2.5,rotvel.X/1.5) + reqrotx or 0,0) reqrotx = reqrotx - reqrotx/10 bv.maxForce = Vector3.new(1,1,1)*9e4*.5 local anioff =(bn(keysdown[" "])-bn(keysdown["2"]))/2 local ani = tickwave(1.5-anioff,1) bv.velocity = bv.velocity:Lerp(Vector3.new(0,bn(not moving)*-ani*15+(descending and math.min(20,tick()-descendtimer)*-8 or bn(keysdown[" "])-bn(keysdown["2"]))*15,0)+vel,.6) vel = moving and cf.lookVector*flspd or Vector3.new() acceleration = moving and (fldir.Y < 0 and (acceleration or 0) + -fldir.Y*grav/60) or lerp((acceleration or 0),0,.02) or 0 flspd = lerp(flspd,moving and math.min(maxspeed,flyspeed + acceleration) or 0,.1) setwings(moving and (gdown and outlow or dbomb and divebomb) or (descending and veryhigh or flap1),15) for i=1,4 do
  214. rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-.5+bn(i==3)*.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1) or descending and CFrame.Angles(.3,0,0) or CFrame.Angles((i*.1+1.5)*ani,ani*-.5,1*ani)),descending and .8 or .2) lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-(-.5+bn(i==3)*.4+bn(i==4)*.5),-(.1+bn(i==2)*.5-bn(i==3)*1.1),bn(i==3)*.1) or descending and CFrame.Angles(-.3,0,0) or CFrame.Angles(-(i*.1+1.5)*ani,ani*.5,1*ani)),descending and .8 or .2) end if down.Y < -.85 then local ignlist = {char} local hit,ray repeat hit,ray = workspace:FindPartOnRayWithIgnoreList(Ray.new(tor.Position,Vector3.new(0,-3.5+math.min(0,bv.velocity.y)/30,0)),ignlist) if hit then if hit.CanCollide then break else table.insert(ignlist,hit) end else break end until false if hit then flying = false hum.PlatformStand = false tor.Velocity = Vector3.new() end end else bg.maxTorque = Vector3.new() bv.maxForce = Vector3.new() local ani = tickwave(walking and .8 or 4.5,1) setwings(keysdown["2"] and outnormal or idle,15) local x,y,z = fspd/160,uspd/700,sspd/900 for i=1,4 do rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * CFrame.Angles(ani*.1 + -mid(-.1,x),0 + -mid(-.1,y) + bn(i==2)*.6,ani*.02 + -mid(-.1,z)) * CFrame.Angles(0,bn(i==2)*-.1,0),.2) lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * CFrame.Angles(ani*-.05 + mid(-.1,x),0 + mid(-.1,y) + -bn(i==2)*.6,ani*.02 + mid(-.1,z)) * CFrame.Angles(0,bn(i==2)*-.1,0),.2) end if keypressed[" "] and not flying and (tick()-possiblefly < .5) then vel = Vector3.new(0,50,0) bv.velocity = vel idledir = cam.CoordinateFrame.lookVector*Vector3.new(1,0,1) cf = tor.CFrame * CFrame.Angles(-.01,0,0) tor.CFrame = cf bg.cframe = cf flystart = tick() flying = true end end keypressed = {} end))
  215.  
  216.  
  217.  
  218. wait(1) --For running in rbx studio
  219. mee = game.Players.LocalPlayer
  220. pistol = Instance.new("Tool", mee.Backpack)
  221. pistol.GripForward = Vector3.new(-0.149, 0.984, -0.099)
  222. pistol.GripPos = Vector3.new(0.1, -0.55, -0.2)
  223. pistol.GripRight = Vector3.new(0.989, 0.148, -0.015)
  224. pistol.GripUp = Vector3.new(0, 0.1, 0.995)
  225. pistol.ToolTip = "Umm... where did you get that?"
  226. pistol.Name = "Pistol"
  227. pistolpart = Instance.new("Part", pistol)
  228. pistolpart.Name = "Handle"
  229. pistolpart.BrickColor = BrickColor.new("Black")
  230. pistolpart.Material = "SmoothPlastic"
  231. pistolpart.Orientation = Vector3.new(-88.99, 152.78, 135.7)
  232. pistolpart.Size = Vector3.new(0.2, 1.12, 0.6)
  233. pistolmesh = Instance.new("SpecialMesh", pistolpart)
  234. pistolmesh.MeshId = "rbxassetid://430060386"
  235. pistolmesh.Scale = Vector3.new(1.7, 1.7, 1.7)
  236. pistolmesh.TextureId = "rbxassetid://430060404"
  237. pistolmesh.VertexColor = Vector3.new(2, 2, 2)
  238. gunshotsound = Instance.new("Sound", pistolpart)
  239. gunshotsound.SoundId = "rbxassetid://213603013"
  240. mouserotatecharacter = true
  241.  
  242.  
  243. pistol.Equipped:connect(function(mouse)
  244. mouserotatecharacter = true
  245. local torso = mee.Character.HumanoidRootPart
  246. local mouseturning = mee:GetMouse()
  247. mee.Character.Humanoid.AutoRotate = false
  248. mouseturning.Move:connect(function()
  249. if mouserotatecharacter == true then
  250. torso.CFrame = CFrame.new(torso.Position, mouseturning.Hit.p*Vector3.new(1,0,1) + torso.Position*Vector3.new(0, 1, 0))
  251.  
  252. end
  253. end)
  254. mouse.Button1Down:connect(function()
  255. gunshotsound:Play()
  256. MakeShell()
  257. local ray = Ray.new(pistol.Handle.CFrame.p, (mouse.Hit.p - pistol.Handle.CFrame.p).unit * 300)
  258. local part, position = workspace:FindPartOnRay(ray, mee.Character, false, true)
  259.  
  260. local beam = Instance.new("Part", workspace)
  261. beam.BrickColor = BrickColor.new("White")
  262. beam.FormFactor = "Custom"
  263. beam.Material = "Neon"
  264. beam.Transparency = 0.7
  265. beam.Anchored = true
  266. beam.Locked = true
  267. beam.CanCollide = false
  268.  
  269. local distance = (pistol.Handle.CFrame.p - position).magnitude
  270. beam.Size = Vector3.new(0.3, 0.3, distance)
  271. beam.CFrame = CFrame.new(pistol.Handle.CFrame.p, position) * CFrame.new(0, 0, -distance / 2)
  272.  
  273. game:GetService("Debris"):AddItem(beam, 0.1)
  274.  
  275. if part then
  276. local humanoid = part.Parent:FindFirstChild("Humanoid")
  277.  
  278. if not humanoid then
  279. humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
  280. end
  281.  
  282. if humanoid then
  283. plrmodel = humanoid.Parent
  284. if plrmodel.Humanoid.Health ~= 0 then
  285. --blood
  286. plrmodel.Archivable = true
  287. local Char = plrmodel
  288. local Hum = Char:FindFirstChild("Humanoid")
  289. local Tor = Char:FindFirstChild("Torso") or Char:FindFirstChild("UpperTorso")
  290. local Health = Hum.Health
  291.  
  292. local M = math.random
  293. local R = math.rad
  294. local rates = {.05, .075, .1, .15}
  295.  
  296. local smooth = function(P)
  297. local SM = Enum.SurfaceType.SmoothNoOutlines
  298. P.TopSurface = SM
  299. P.BottomSurface = SM
  300. P.RightSurface = SM
  301. P.LeftSurface = SM
  302. P.FrontSurface = SM
  303. P.BackSurface = SM
  304. end
  305.  
  306. local function BloodPool(Part,Size)
  307. local Pool = Instance.new("Part",game.Workspace)
  308. Pool.TopSurface = 0
  309. Pool.CanCollide = false
  310. Pool.BrickColor = BrickColor.new("Crimson")
  311. Pool.Transparency = 0
  312. Instance.new("CylinderMesh",Pool)
  313. Pool.Anchored = true
  314. Pool.Name = "BloodPoolPart"
  315. smooth(Pool)
  316. Pool.FormFactor = Enum.FormFactor.Custom
  317. Pool.Size = Size
  318. local c = Part.CFrame*CFrame.new(M(-3.01,3.01),-2.9,M(-3.01,3.01))
  319. coroutine.resume(coroutine.create(function()
  320. local rate = rates[M(1,#rates)]
  321. game.Debris:AddItem(Pool,15)
  322. for i = 1,M(25,70) do
  323. wait()
  324. Pool.CFrame = c
  325. Pool.Size = Pool.Size+Vector3.new(rate,0,rate)
  326. end
  327. wait(5)
  328. Pool:Destroy()
  329. end))
  330. end
  331.  
  332. local function BloodDrops(Size,Area)
  333. local Blood = Instance.new("Part",game.Workspace)
  334. Blood.BrickColor = BrickColor.new("Crimson")
  335. Blood.Parent = plrmodel
  336. Blood.TopSurface = 0
  337. Blood.CanCollide = false
  338. Blood.Anchored = false
  339. Blood.FormFactor = Enum.FormFactor.Custom
  340. Blood.Size = Size
  341. Blood.CFrame = Area*CFrame.new(M(-1.00,1.00),M(-1.00,1.00),M(-1.00,1.00))
  342. return Blood
  343. end
  344.  
  345.  
  346.  
  347. Hum.Changed:connect(function()
  348. if Hum.Health < Health then
  349.  
  350. Health = Hum.Health
  351. for i = 1, math.random(4,10)do
  352. local Size = Vector3.new(M(-0.25,0.25),.2,M(-.25,.25))
  353. local Blood = BloodDrops(Size,Tor.CFrame)
  354. local Stopper = false
  355. local Size2 = Vector3.new(M(-0.25,0.25),.2,M(-.25,.25))
  356. BloodPool(Tor,Size2)
  357. end
  358. end
  359. end)
  360. end
  361. --Ragdoll
  362. wait()
  363. function getAttachment0(attachmentName)
  364. for _,child in next,plrmodel:GetChildren() do
  365. local attachment = child:FindFirstChild(attachmentName)
  366. if attachment then
  367. return attachment
  368. end
  369. end
  370. end
  371. plrmodel.Humanoid.Died:Connect(function(var)
  372. local removeHRP = true
  373. local head = plrmodel["Head"]
  374. local leftarm = plrmodel["Left Arm"]
  375. local leftleg = plrmodel["Left Leg"]
  376. local rightleg = plrmodel["Right Leg"]
  377. local rightarm = plrmodel["Right Arm"]
  378. local torso = plrmodel.Torso
  379. local root = plrmodel.HumanoidRootPart
  380. if removeHRP == true then
  381. root:Destroy()
  382. end
  383. local rootA =Instance.new("Attachment")
  384. local HeadA = Instance.new("Attachment")
  385. local LeftArmA = Instance.new("Attachment")
  386. local LeftLegA = Instance.new("Attachment")
  387. local RightArmA = Instance.new("Attachment")
  388. local RightLegA = Instance.new("Attachment")
  389. local TorsoA = Instance.new("Attachment")
  390. local TorsoA1 = Instance.new("Attachment")
  391. local TorsoA2 = Instance.new("Attachment")
  392. local TorsoA3 = Instance.new("Attachment")
  393. local TorsoA4 = Instance.new("Attachment")
  394. local TorsoA5 = Instance.new("Attachment")
  395. local function set1()
  396. HeadA.Name = "HeadA"
  397. HeadA.Parent = head
  398. HeadA.Position = Vector3.new(0, -0.5, 0)
  399. HeadA.Rotation = Vector3.new(0, 0, 0)
  400. HeadA.Axis = Vector3.new(1, 0, 0)
  401. HeadA.SecondaryAxis = Vector3.new(0, 1, 0)
  402. LeftArmA.Name = "LeftArmA"
  403. LeftArmA.Parent = leftarm
  404. LeftArmA.Position = Vector3.new(0.5, 1, 0)
  405. LeftArmA.Rotation = Vector3.new(0, 0, 0)
  406. LeftArmA.Axis = Vector3.new(1, 0, 0)
  407. LeftArmA.SecondaryAxis = Vector3.new(0, 1, 0)
  408. LeftLegA.Name = "LeftLegA"
  409. LeftLegA.Parent = leftleg
  410. LeftLegA.Position = Vector3.new(0, 1, 0)
  411. LeftLegA.Rotation = Vector3.new(0, 0, 0)
  412. LeftLegA.Axis = Vector3.new(1, 0, 0)
  413. LeftLegA.SecondaryAxis = Vector3.new(0, 1, 0)
  414. RightArmA.Name = "RightArmA"
  415. RightArmA.Parent = rightarm
  416. RightArmA.Position = Vector3.new(-0.5, 1, 0)
  417. RightArmA.Rotation = Vector3.new(0, 0, 0)
  418. RightArmA.Axis = Vector3.new(1, 0, 0)
  419. RightArmA.SecondaryAxis = Vector3.new(0, 1, 0)
  420. RightLegA.Name = "RightLegA"
  421. RightLegA.Parent = rightleg
  422. RightLegA.Position = Vector3.new(0, 1, 0)
  423. RightLegA.Rotation = Vector3.new(0, 0, 0)
  424. RightLegA.Axis = Vector3.new(1, 0, 0)
  425. RightLegA.SecondaryAxis = Vector3.new(0, 1, 0)
  426. rootA.Name= "rootA"
  427. rootA.Parent = root
  428. rootA.Position = Vector3.new(0, 0, 0)
  429. rootA.Rotation = Vector3.new(0, 90, 0)
  430. rootA.Axis = Vector3.new(0, 0, -1)
  431. rootA.SecondaryAxis = Vector3.new(0, 1, 0)
  432. end
  433. local function set2()
  434. TorsoA.Name = "TorsoA"
  435. TorsoA.Parent = torso
  436. TorsoA.Position = Vector3.new(0.5, -1, 0)
  437. TorsoA.Rotation = Vector3.new(0, 0, 0)
  438. TorsoA.Axis = Vector3.new(1, 0, 0)
  439. TorsoA.SecondaryAxis = Vector3.new(0, 1, 0)
  440. TorsoA1.Name = "TorsoA1"
  441. TorsoA1.Parent = torso
  442. TorsoA1.Position = Vector3.new(-0.5, -1, 0)
  443. TorsoA1.Rotation = Vector3.new(0, 0, 0)
  444. TorsoA1.Axis = Vector3.new(1, 0, 0)
  445. TorsoA1.SecondaryAxis = Vector3.new(0, 1, 0)
  446. TorsoA2.Name = "TorsoA2"
  447. TorsoA2.Parent = torso
  448. TorsoA2.Position = Vector3.new(-1, 1, 0)
  449. TorsoA2.Rotation = Vector3.new(0, 0, 0)
  450. TorsoA2.Axis = Vector3.new(1, 0, 0)
  451. TorsoA2.SecondaryAxis = Vector3.new(0, 1, 0)
  452. TorsoA3.Name = "TorsoA3"
  453. TorsoA3.Parent = torso
  454. TorsoA3.Position = Vector3.new(1, 1, 0)
  455. TorsoA3.Rotation = Vector3.new(0, 0, 0)
  456. TorsoA3.Axis = Vector3.new(1, 0, 0)
  457. TorsoA3.SecondaryAxis = Vector3.new(0, 1, 0)
  458. TorsoA4.Name = "TorsoA4"
  459. TorsoA4.Parent = torso
  460. TorsoA4.Position = Vector3.new(0, 1, 0)
  461. TorsoA4.Rotation = Vector3.new(0, 0, 0)
  462. TorsoA4.Axis = Vector3.new(1, 0, 0)
  463. TorsoA4.SecondaryAxis = Vector3.new(0, 1, 0)
  464. TorsoA5.Name = "TorsoA5"
  465. TorsoA5.Parent = torso
  466. TorsoA5.Position = Vector3.new(0, 0, 0)
  467. TorsoA5.Rotation = Vector3.new(0, 90, 0)
  468. TorsoA5.Axis = Vector3.new(0, 0, -1)
  469. TorsoA5.SecondaryAxis = Vector3.new(0, 1, 0)
  470. end
  471. local function set3()
  472. end
  473. spawn(set1);
  474. spawn(set2);
  475. local HA = Instance.new("HingeConstraint")
  476. HA.Parent = head
  477. HA.Attachment0 = HeadA
  478. HA.Attachment1 = TorsoA4
  479. HA.Enabled = true
  480. HA.LimitsEnabled=true
  481. HA.LowerAngle=0
  482. HA.UpperAngle=0
  483. local LAT = Instance.new("BallSocketConstraint")
  484. LAT.Parent = leftarm
  485. LAT.Attachment0 = LeftArmA
  486. LAT.Attachment1 = TorsoA2
  487. LAT.Enabled = true
  488. LAT.LimitsEnabled=true
  489. LAT.UpperAngle=90
  490. local RAT = Instance.new("BallSocketConstraint")
  491. RAT.Parent = rightarm
  492. RAT.Attachment0 = RightArmA
  493. RAT.Attachment1 = TorsoA3
  494. RAT.Enabled = true
  495. RAT.LimitsEnabled=true
  496. RAT.UpperAngle=90
  497. local HA = Instance.new("BallSocketConstraint")
  498. HA.Parent = head
  499. HA.Attachment0 = HeadA
  500. HA.Attachment1 = TorsoA4
  501. HA.Enabled = true
  502. local TLL = Instance.new("BallSocketConstraint")
  503. TLL.Parent = torso
  504. TLL.Attachment0 = TorsoA1
  505. TLL.Attachment1 = LeftLegA
  506. TLL.Enabled = true
  507. TLL.LimitsEnabled=true
  508. TLL.UpperAngle=90
  509. local TRL = Instance.new("BallSocketConstraint")
  510. TRL.Parent = torso
  511. TRL.Attachment0 = TorsoA
  512. TRL.Attachment1 = RightLegA
  513. TRL.Enabled = true
  514. TRL.LimitsEnabled=true
  515. TRL.UpperAngle=90
  516. local RTA = Instance.new("BallSocketConstraint")
  517. RTA.Parent = root
  518. RTA.Attachment0 = rootA
  519. RTA.Attachment1 = TorsoA5
  520. RTA.Enabled = true
  521. RTA.LimitsEnabled=true
  522. RTA.UpperAngle=0
  523. head.Velocity = head.CFrame.lookVector*30
  524.  
  525. for _,child in next,plrmodel:GetChildren() do
  526. if child:IsA("Accoutrement") then
  527. for _,part in next,child:GetChildren() do
  528. if part:IsA("BasePart") then
  529. part.Parent = plrmodel
  530. child:remove()
  531. local attachment1 = part:FindFirstChildOfClass("Attachment")
  532. local attachment0 = getAttachment0(attachment1.Name)
  533. if attachment0 and attachment1 then
  534. local constraint = Instance.new("HingeConstraint")
  535. constraint.Attachment0 = attachment0
  536. constraint.Attachment1 = attachment1
  537. constraint.LimitsEnabled = true
  538. constraint.UpperAngle = 0
  539. constraint.LowerAngle = 0
  540. constraint.Parent = plrmodel
  541. end
  542. end
  543. end
  544. end
  545. end
  546. end)
  547.  
  548. end
  549. if humanoid.Health ~= 0 then
  550. humanoid.Health = 0
  551. wait(3)
  552. while true do
  553. if humanoid.Health ~= 0 then
  554. humanoid.Health = 0 --This loop is a strange kill system I know, but this prevents doing 99 damage instead of 100 for some reason.s
  555. else
  556. break
  557. end
  558. wait(0.3)
  559. end
  560. end
  561. end
  562. end)
  563. end)
  564.  
  565. pistol.Unequipped:connect(function()
  566. wait(0.2)
  567. mouserotatecharacter = false
  568. mee.Character.Humanoid.AutoRotate = true
  569. end)
  570. function MakeShell()
  571. Shell = Instance.new("Part", workspace)
  572. Shell.Size = Vector3.new(0.2, 0.2, 0.6)
  573. ShellMesh = Instance.new("SpecialMesh", Shell)
  574. ShellMesh.MeshId = "http://www.roblox.com/asset/?id=94295100"
  575. ShellMesh.Scale = Vector3.new(4, 4, 4)
  576. ShellMesh.TextureId = "http://www.roblox.com/asset/?id=94287792"
  577. Shell.Position = pistolpart.Position
  578. end
  579.  
  580. --//====================================================\\--
  581. --|| CREATED BY SHACKLUSTER
  582. --\\====================================================//--
  583.  
  584.  
  585.  
  586. wait(0.2)
  587.  
  588.  
  589.  
  590. Player = game:GetService("Players").LocalPlayer
  591. PlayerGui = Player.PlayerGui
  592. Cam = workspace.CurrentCamera
  593. Backpack = Player.Backpack
  594. Character = Player.Character
  595. Humanoid = Character.Humanoid
  596. Mouse = Player:GetMouse()
  597. RootPart = Character["HumanoidRootPart"]
  598. Torso = Character["Torso"]
  599. Head = Character["Head"]
  600. RightArm = Character["Right Arm"]
  601. LeftArm = Character["Left Arm"]
  602. RightLeg = Character["Right Leg"]
  603. LeftLeg = Character["Left Leg"]
  604. RootJoint = RootPart["RootJoint"]
  605. Neck = Torso["Neck"]
  606. RightShoulder = Torso["Right Shoulder"]
  607. LeftShoulder = Torso["Left Shoulder"]
  608. RightHip = Torso["Right Hip"]
  609. LeftHip = Torso["Left Hip"]
  610.  
  611. IT = Instance.new
  612. CF = CFrame.new
  613. VT = Vector3.new
  614. RAD = math.rad
  615. C3 = Color3.new
  616. UD2 = UDim2.new
  617. BRICKC = BrickColor.new
  618. ANGLES = CFrame.Angles
  619. EULER = CFrame.fromEulerAnglesXYZ
  620. COS = math.cos
  621. ACOS = math.acos
  622. SIN = math.sin
  623. ASIN = math.asin
  624. ABS = math.abs
  625. MRANDOM = math.random
  626. FLOOR = math.floor
  627.  
  628. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  629. local NEWMESH = IT(MESH)
  630. if MESH == "SpecialMesh" then
  631. NEWMESH.MeshType = MESHTYPE
  632. if MESHID ~= "nil" and MESHID ~= "" then
  633. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  634. end
  635. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  636. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  637. end
  638. end
  639. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  640. NEWMESH.Scale = SCALE
  641. NEWMESH.Parent = PARENT
  642. return NEWMESH
  643. end
  644.  
  645. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  646. local NEWPART = IT("Part")
  647. NEWPART.formFactor = FORMFACTOR
  648. NEWPART.Reflectance = REFLECTANCE
  649. NEWPART.Transparency = TRANSPARENCY
  650. NEWPART.CanCollide = false
  651. NEWPART.Locked = true
  652. NEWPART.Anchored = true
  653. if ANCHOR == false then
  654. NEWPART.Anchored = false
  655. end
  656. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  657. NEWPART.Name = NAME
  658. NEWPART.Size = SIZE
  659. NEWPART.Position = Torso.Position
  660. NEWPART.Material = MATERIAL
  661. NEWPART:BreakJoints()
  662. NEWPART.Parent = PARENT
  663. return NEWPART
  664. end
  665.  
  666. --//=================================\\
  667. --|| CUSTOMIZATION
  668. --\\=================================//
  669.  
  670. Class_Name = "Immortal curse"
  671. Weapon_Name = "Add-ons"
  672.  
  673. Custom_Colors = {
  674. Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
  675. Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
  676.  
  677. Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
  678. Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
  679. Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
  680. Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
  681. Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
  682.  
  683. Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
  684. Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
  685. Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
  686. Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
  687. Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
  688. }
  689.  
  690.  
  691. Player_Size = 1 --Size of the player.
  692. Animation_Speed = 3
  693. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  694.  
  695. local Speed = 16
  696. local Effects2 = {}
  697.  
  698. --//=================================\\
  699. --|| END OF CUSTOMIZATION
  700. --\\=================================//
  701.  
  702. local function weldBetween(a, b)
  703. local weldd = Instance.new("ManualWeld")
  704. weldd.Part0 = a
  705. weldd.Part1 = b
  706. weldd.C0 = CFrame.new()
  707. weldd.C1 = b.CFrame:inverse() * a.CFrame
  708. weldd.Parent = a
  709. return weldd
  710. end
  711.  
  712. function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
  713. local acs = Instance.new("Part")
  714. acs.CanCollide = false
  715. acs.Anchored = false
  716. acs.Size = Vector3.new(0,0,0)
  717. acs.CFrame = attachmentpart.CFrame
  718. acs.Parent = Character
  719. acs.BrickColor = color
  720. local meshs = Instance.new("SpecialMesh")
  721. meshs.MeshId = mesh
  722. meshs.TextureId = texture
  723. meshs.Parent = acs
  724. meshs.Scale = scale
  725. meshs.Offset = offset
  726. weldBetween(attachmentpart,acs)
  727. end
  728.  
  729. function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
  730. if TYPE == "Gem" then
  731. local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  732. acs.Anchored = false
  733. acs.CanCollide = false
  734. acs.CFrame = PART.CFrame
  735. local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
  736. weldBetween(PART,acs)
  737. elseif TYPE == "Skull" then
  738. local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  739. acs.Anchored = false
  740. acs.CanCollide = false
  741. acs.CFrame = PART.CFrame
  742. local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
  743. weldBetween(PART,acs)
  744. elseif TYPE == "Eye" then
  745. local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
  746. acs.Anchored = false
  747. acs.CanCollide = false
  748. acs.CFrame = PART.CFrame
  749. local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
  750. weldBetween(PART,acs)
  751. end
  752. end
  753.  
  754. --//=================================\\
  755. --|| USEFUL VALUES
  756. --\\=================================//
  757.  
  758. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  759. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  760. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  761. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  762. local CHANGEDEFENSE = 0
  763. local CHANGEDAMAGE = 0
  764. local CHANGEMOVEMENT = 0
  765. local ANIM = "Idle"
  766. local ATTACK = false
  767. local EQUIPPED = false
  768. local HOLD = false
  769. local COMBO = 1
  770. local Rooted = false
  771. local SINE = 0
  772. local KEYHOLD = false
  773. local CHANGE = 2 / Animation_Speed
  774. local WALKINGANIM = false
  775. local WALK = 0
  776. local VALUE1 = false
  777. local VALUE2 = false
  778. local ROBLOXIDLEANIMATION = IT("Animation")
  779. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  780. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  781. --ROBLOXIDLEANIMATION.Parent = Humanoid
  782. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  783. WEAPONGUI.Name = "Weapon GUI"
  784. local Weapon = IT("Model")
  785. Weapon.Name = Weapon_Name
  786. local Effects = IT("Folder", Weapon)
  787. Effects.Name = "Effects"
  788. local ANIMATOR = Humanoid.Animator
  789. local ANIMATE = Character.Animate
  790. local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
  791. local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
  792. local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
  793. local HITBLOCKSOUNDS = {"199148933", "199148947"}
  794. local UNANCHOR = true
  795.  
  796. local SKILLTEXTCOLOR = C3(0,0,0)
  797.  
  798. --//=================================\\
  799. --\\=================================//
  800.  
  801.  
  802. --//=================================\\
  803. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  804. --\\=================================//
  805.  
  806. ArtificialHB = Instance.new("BindableEvent", script)
  807. ArtificialHB.Name = "ArtificialHB"
  808.  
  809. script:WaitForChild("ArtificialHB")
  810.  
  811. frame = Frame_Speed
  812. tf = 0
  813. allowframeloss = false
  814. tossremainder = false
  815. lastframe = tick()
  816. script.ArtificialHB:Fire()
  817.  
  818. game:GetService("RunService").Heartbeat:connect(function(s, p)
  819. tf = tf + s
  820. if tf >= frame then
  821. if allowframeloss then
  822. script.ArtificialHB:Fire()
  823. lastframe = tick()
  824. else
  825. for i = 1, math.floor(tf / frame) do
  826. script.ArtificialHB:Fire()
  827. end
  828. lastframe = tick()
  829. end
  830. if tossremainder then
  831. tf = 0
  832. else
  833. tf = tf - frame * math.floor(tf / frame)
  834. end
  835. end
  836. end)
  837.  
  838. --//=================================\\
  839. --\\=================================//
  840.  
  841.  
  842.  
  843.  
  844.  
  845. --//=================================\\
  846. --|| SOME FUNCTIONS
  847. --\\=================================//
  848.  
  849. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  850. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  851. end
  852.  
  853. function PositiveAngle(NUMBER)
  854. if NUMBER >= 0 then
  855. NUMBER = 0
  856. end
  857. return NUMBER
  858. end
  859.  
  860. function NegativeAngle(NUMBER)
  861. if NUMBER <= 0 then
  862. NUMBER = 0
  863. end
  864. return NUMBER
  865. end
  866.  
  867. function Swait(NUMBER)
  868. if NUMBER == 0 or NUMBER == nil then
  869. ArtificialHB.Event:wait()
  870. else
  871. for i = 1, NUMBER do
  872. ArtificialHB.Event:wait()
  873. end
  874. end
  875. end
  876.  
  877. function QuaternionFromCFrame(cf)
  878. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  879. local trace = m00 + m11 + m22
  880. if trace > 0 then
  881. local s = math.sqrt(1 + trace)
  882. local recip = 0.5 / s
  883. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  884. else
  885. local i = 0
  886. if m11 > m00 then
  887. i = 1
  888. end
  889. if m22 > (i == 0 and m00 or m11) then
  890. i = 2
  891. end
  892. if i == 0 then
  893. local s = math.sqrt(m00 - m11 - m22 + 1)
  894. local recip = 0.5 / s
  895. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  896. elseif i == 1 then
  897. local s = math.sqrt(m11 - m22 - m00 + 1)
  898. local recip = 0.5 / s
  899. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  900. elseif i == 2 then
  901. local s = math.sqrt(m22 - m00 - m11 + 1)
  902. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  903. end
  904. end
  905. end
  906.  
  907. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  908. local xs, ys, zs = x + x, y + y, z + z
  909. local wx, wy, wz = w * xs, w * ys, w * zs
  910. local xx = x * xs
  911. local xy = x * ys
  912. local xz = x * zs
  913. local yy = y * ys
  914. local yz = y * zs
  915. local zz = z * zs
  916. 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))
  917. end
  918.  
  919. function QuaternionSlerp(a, b, t)
  920. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  921. local startInterp, finishInterp;
  922. if cosTheta >= 0.0001 then
  923. if (1 - cosTheta) > 0.0001 then
  924. local theta = ACOS(cosTheta)
  925. local invSinTheta = 1 / SIN(theta)
  926. startInterp = SIN((1 - t) * theta) * invSinTheta
  927. finishInterp = SIN(t * theta) * invSinTheta
  928. else
  929. startInterp = 1 - t
  930. finishInterp = t
  931. end
  932. else
  933. if (1 + cosTheta) > 0.0001 then
  934. local theta = ACOS(-cosTheta)
  935. local invSinTheta = 1 / SIN(theta)
  936. startInterp = SIN((t - 1) * theta) * invSinTheta
  937. finishInterp = SIN(t * theta) * invSinTheta
  938. else
  939. startInterp = t - 1
  940. finishInterp = t
  941. end
  942. end
  943. 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
  944. end
  945.  
  946. function Clerp(a, b, t)
  947. local qa = {QuaternionFromCFrame(a)}
  948. local qb = {QuaternionFromCFrame(b)}
  949. local ax, ay, az = a.x, a.y, a.z
  950. local bx, by, bz = b.x, b.y, b.z
  951. local _t = 1 - t
  952. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  953. end
  954.  
  955. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  956. local frame = IT("Frame")
  957. frame.BackgroundTransparency = TRANSPARENCY
  958. frame.BorderSizePixel = BORDERSIZEPIXEL
  959. frame.Position = POSITION
  960. frame.Size = SIZE
  961. frame.BackgroundColor3 = COLOR
  962. frame.BorderColor3 = BORDERCOLOR
  963. frame.Name = NAME
  964. frame.Parent = PARENT
  965. return frame
  966. end
  967.  
  968. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  969. local label = IT("TextLabel")
  970. label.BackgroundTransparency = 1
  971. label.Size = UD2(1, 0, 1, 0)
  972. label.Position = UD2(0, 0, 0, 0)
  973. label.TextColor3 = TEXTCOLOR
  974. label.TextStrokeTransparency = STROKETRANSPARENCY
  975. label.TextTransparency = TRANSPARENCY
  976. label.FontSize = TEXTFONTSIZE
  977. label.Font = TEXTFONT
  978. label.BorderSizePixel = BORDERSIZEPIXEL
  979. label.TextScaled = false
  980. label.Text = TEXT
  981. label.Name = NAME
  982. label.Parent = PARENT
  983. return label
  984. end
  985.  
  986. function NoOutlines(PART)
  987. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  988. end
  989.  
  990.  
  991. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  992. local NEWWELD = IT(TYPE)
  993. NEWWELD.Part0 = PART0
  994. NEWWELD.Part1 = PART1
  995. NEWWELD.C0 = C0
  996. NEWWELD.C1 = C1
  997. NEWWELD.Parent = PARENT
  998. return NEWWELD
  999. end
  1000.  
  1001. function CreateSound(ID, PARENT, VOLUME, PITCH)
  1002. local NEWSOUND = nil
  1003. coroutine.resume(coroutine.create(function()
  1004. NEWSOUND = IT("Sound", PARENT)
  1005. NEWSOUND.Volume = VOLUME
  1006. NEWSOUND.Pitch = PITCH
  1007. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  1008. Swait()
  1009. NEWSOUND:play()
  1010. game:GetService("Debris"):AddItem(NEWSOUND, 10)
  1011. end))
  1012. return NEWSOUND
  1013. end
  1014.  
  1015. function CFrameFromTopBack(at, top, back)
  1016. local right = top:Cross(back)
  1017. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  1018. end
  1019.  
  1020. function CreateWave(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
  1021. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  1022. local mesh = IT("SpecialMesh",wave)
  1023. mesh.MeshType = "FileMesh"
  1024. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1025. mesh.Scale = VT(size,size,size)
  1026. mesh.Offset = VT(0,0,-size/8)
  1027. wave.CFrame = cframe
  1028. coroutine.resume(coroutine.create(function(PART)
  1029. for i = 1, waitt do
  1030. Swait()
  1031. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  1032. mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1033. if doesrotate == true then
  1034. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  1035. end
  1036. wave.Transparency = wave.Transparency + (0.5/waitt)
  1037. if wave.Transparency > 0.99 then
  1038. wave:remove()
  1039. end
  1040. end
  1041. end))
  1042. end
  1043.  
  1044. function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
  1045. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  1046. local mesh = IT("SpecialMesh",wave)
  1047. mesh.MeshType = "FileMesh"
  1048. mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
  1049. mesh.Scale = VT(size,size,size)
  1050. wave.CFrame = cframe
  1051. coroutine.resume(coroutine.create(function(PART)
  1052. for i = 1, waitt do
  1053. Swait()
  1054. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  1055. if doesrotate == true then
  1056. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  1057. end
  1058. wave.Transparency = wave.Transparency + (0.5/waitt)
  1059. if wave.Transparency > 0.99 then
  1060. wave:remove()
  1061. end
  1062. end
  1063. end))
  1064. end
  1065.  
  1066. function MakeForm(PART,TYPE)
  1067. if TYPE == "Cyl" then
  1068. local MSH = IT("CylinderMesh",PART)
  1069. elseif TYPE == "Ball" then
  1070. local MSH = IT("SpecialMesh",PART)
  1071. MSH.MeshType = "Sphere"
  1072. elseif TYPE == "Wedge" then
  1073. local MSH = IT("SpecialMesh",PART)
  1074. MSH.MeshType = "Wedge"
  1075. end
  1076. end
  1077.  
  1078. function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
  1079. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  1080. local mesh = IT("SpecialMesh",wave)
  1081. mesh.MeshType = "FileMesh"
  1082. mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
  1083. mesh.Scale = VT(size,size,size)
  1084. wave.CFrame = cframe
  1085. coroutine.resume(coroutine.create(function(PART)
  1086. for i = 1, waitt do
  1087. Swait()
  1088. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  1089. if doesrotate == true then
  1090. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  1091. end
  1092. wave.Transparency = wave.Transparency + (0.5/waitt)
  1093. if wave.Transparency > 0.99 then
  1094. wave:remove()
  1095. end
  1096. end
  1097. end))
  1098. end
  1099.  
  1100. function CreateRing(inair,size,doesrotate,rotatedirection,waitt,cframe,spin1,spin2,color)
  1101. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  1102. local mesh = IT("SpecialMesh",wave)
  1103. mesh.MeshType = "FileMesh"
  1104. mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  1105. mesh.Scale = VT(size,size,size)
  1106. mesh.Offset = VT(0,0,0)
  1107. wave.CFrame = cframe
  1108. coroutine.resume(coroutine.create(function(PART)
  1109. for i = 1, waitt do
  1110. Swait()
  1111. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  1112. if doesrotate == true then
  1113. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
  1114. end
  1115. wave.Transparency = wave.Transparency + (0.5/waitt)
  1116. if wave.Transparency > 0.99 then
  1117. wave:remove()
  1118. end
  1119. end
  1120. end))
  1121. end
  1122.  
  1123. function MagicSphere(size,waitt,cframe,color)
  1124. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(1,1,1), true)
  1125. local mesh = IT("SpecialMesh",wave)
  1126. mesh.MeshType = "Sphere"
  1127. mesh.Scale = VT(size,size,size)
  1128. mesh.Offset = VT(0,0,0)
  1129. wave.CFrame = cframe
  1130. coroutine.resume(coroutine.create(function(PART)
  1131. for i = 1, waitt do
  1132. Swait()
  1133. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  1134. wave.Transparency = wave.Transparency + (1/waitt)
  1135. if wave.Transparency > 0.99 then
  1136. wave:remove()
  1137. end
  1138. end
  1139. end))
  1140. end
  1141.  
  1142. function MagicSphere2(size,waitt,cframe,color)
  1143. local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(1,1,1), true)
  1144. local mesh = IT("SpecialMesh",wave)
  1145. mesh.MeshType = "Sphere"
  1146. mesh.Scale = VT(size,size,size)
  1147. mesh.Offset = VT(0,0,0)
  1148. wave.CFrame = cframe
  1149. coroutine.resume(coroutine.create(function(PART)
  1150. for i = 1, waitt do
  1151. Swait()
  1152. mesh.Scale = mesh.Scale - VT(size/waitt,size/waitt,size/waitt)
  1153. wave.Transparency = wave.Transparency - (1/waitt)
  1154. end
  1155. wave:remove()
  1156. end))
  1157. end
  1158.  
  1159. function MagicBlock(size,waitt,cframe,color)
  1160. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size), true)
  1161. local mesh = IT("BlockMesh",wave)
  1162. wave.CFrame = cframe
  1163. coroutine.resume(coroutine.create(function(PART)
  1164. for i = 1, waitt do
  1165. Swait()
  1166. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  1167. wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360)))
  1168. wave.Transparency = wave.Transparency + (1/waitt)
  1169. if wave.Transparency > 0.99 then
  1170. wave:remove()
  1171. end
  1172. end
  1173. end))
  1174. end
  1175.  
  1176. function MagicBlock2(size,waitt,cframe,color)
  1177. local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(size,size,size), true)
  1178. local mesh = IT("BlockMesh",wave)
  1179. wave.CFrame = cframe
  1180. coroutine.resume(coroutine.create(function(PART)
  1181. for i = 1, waitt do
  1182. Swait()
  1183. mesh.Scale = mesh.Scale - VT(1/waitt,1/waitt,1/waitt)
  1184. wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360)))
  1185. wave.Transparency = wave.Transparency - (1/waitt)
  1186. end
  1187. wave:Destroy()
  1188. end))
  1189. end
  1190.  
  1191. function MagicBlock(size,waitt,cframe,color)
  1192. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
  1193. local mesh = IT("BlockMesh",wave)
  1194. wave.CFrame = cframe
  1195. coroutine.resume(coroutine.create(function(PART)
  1196. for i = 1, waitt do
  1197. Swait()
  1198. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  1199. wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
  1200. wave.Transparency = wave.Transparency + (1/waitt)
  1201. if wave.Transparency > 0.99 then
  1202. wave:remove()
  1203. end
  1204. end
  1205. end))
  1206. end
  1207.  
  1208. function CheckTableForString(Table, String)
  1209. for i, v in pairs(Table) do
  1210. if string.find(string.lower(String), string.lower(v)) then
  1211. return true
  1212. end
  1213. end
  1214. return false
  1215. end
  1216.  
  1217. function CheckIntangible(Hit)
  1218. local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
  1219. if Hit and Hit.Parent then
  1220. if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
  1221. return true
  1222. end
  1223. end
  1224. return false
  1225. end
  1226.  
  1227. Debris = game:GetService("Debris")
  1228.  
  1229. function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
  1230. local Direction = CFrame.new(StartPos, Vec).lookVector
  1231. local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
  1232. local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
  1233. if RayHit and CheckIntangible(RayHit) then
  1234. if DelayIfHit then
  1235. wait()
  1236. end
  1237. RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
  1238. end
  1239. return RayHit, RayPos, RayNormal
  1240. end
  1241.  
  1242. function turnto(position)
  1243. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  1244. end
  1245.  
  1246. --//=================================\\
  1247. --|| WEAPON CREATION
  1248. --\\=================================//
  1249.  
  1250. for _, c in pairs(Weapon:GetChildren()) do
  1251. if c.ClassName == "Part" then
  1252. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  1253. end
  1254. end
  1255.  
  1256. Weapon.Parent = Character
  1257.  
  1258. Humanoid.Died:connect(function()
  1259. ATTACK = true
  1260. end)
  1261.  
  1262. print(Class_Name.." loaded.")
  1263.  
  1264. local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.86, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
  1265. local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[X] Toggle [ON]", SKILLTEXTCOLOR, 8, "SciFi", 0, 2, 1, "Text 1")
  1266.  
  1267. --//=================================\\
  1268. --|| DAMAGE FUNCTIONS
  1269. --\\=================================//
  1270.  
  1271. function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
  1272. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
  1273. STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
  1274. local BODYGYRO = IT("BodyGyro", STATPART)
  1275. local BODYPOSITION = IT("BodyPosition", STATPART)
  1276. BODYPOSITION.P = 2000
  1277. BODYPOSITION.D = 100
  1278. BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
  1279. if LABELTYPE == "Normal" then
  1280. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
  1281. elseif LABELTYPE == "Debuff" then
  1282. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
  1283. elseif LABELTYPE == "Interruption" then
  1284. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
  1285. end
  1286. game:GetService("Debris"):AddItem(STATPART ,5)
  1287. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  1288. BILLBOARDGUI.Adornee = STATPART
  1289. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  1290. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  1291. BILLBOARDGUI.AlwaysOnTop = false
  1292. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  1293. TEXTLABEL.BackgroundTransparency = 1
  1294. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  1295. TEXTLABEL.Text = TEXT
  1296. TEXTLABEL.Font = "SciFi"
  1297. TEXTLABEL.FontSize="Size42"
  1298. TEXTLABEL.TextColor3 = COLOR
  1299. TEXTLABEL.TextStrokeTransparency = 1
  1300. TEXTLABEL.TextScaled = true
  1301. TEXTLABEL.TextWrapped = true
  1302. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  1303. wait(0.2)
  1304. for i=1, 5 do
  1305. wait()
  1306. THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
  1307. end
  1308. wait(1.2)
  1309. for i=1, 5 do
  1310. wait()
  1311. THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
  1312. THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
  1313. THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
  1314. end
  1315. THEPART.Parent = nil
  1316. end),STATPART, BODYPOSITION, TEXTLABEL)
  1317. end
  1318.  
  1319.  
  1320. --//=================================\\
  1321. --|| DAMAGING
  1322. --\\=================================//
  1323.  
  1324. function GoDeeper(object,position,range,maxstrength,hasdugdeep)
  1325. if object ~= Character and object~= Effects then
  1326. local body = object:GetChildren()
  1327. for part = 1, #body do
  1328. if (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") then
  1329. if (body[part].Position - position).Magnitude < range then
  1330. if body[part]:FindFirstChild("OOF") == nil then
  1331. CastBlast(range/2)
  1332. local defence = Instance.new("BoolValue",body[part])
  1333. defence.Name = ("OOF")
  1334. body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
  1335. end
  1336. if hasdugdeep == true then
  1337. body[part]:Destroy()
  1338. end
  1339. end
  1340. elseif body[part].ClassName == "Model" or body[part].ClassName == "Folder" then
  1341. GoDeeper(body[part],position,range,maxstrength,true)
  1342. end
  1343. end
  1344. end
  1345. end
  1346.  
  1347. function CastEffective(position,range,maxstrength)
  1348. for i,v in ipairs(workspace:GetChildren()) do
  1349. GoDeeper(v,position,range,maxstrength,false)
  1350. local body = v:GetChildren()
  1351. for part = 1, #body do
  1352. if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  1353. if(body[part].Position - position).Magnitude < range then
  1354. if v.ClassName == "Model" then
  1355. v:BreakJoints()
  1356. end
  1357. if body[part]:FindFirstChild("OOF") == nil then
  1358. CastBlast(range/2)
  1359. local defence = Instance.new("BoolValue",body[part])
  1360. defence.Name = ("OOF")
  1361. end
  1362. --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
  1363. body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
  1364. end
  1365. end
  1366. end
  1367. if v.ClassName == "Part" then
  1368. if v.Anchored == false and (v.Position - position).Magnitude < range then
  1369. --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
  1370. v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
  1371. end
  1372. end
  1373. end
  1374. end
  1375.  
  1376. --//=================================\\
  1377. --|| ATTACK FUNCTIONS AND STUFF
  1378. --\\=================================//
  1379.  
  1380. function CastBlast(size)
  1381. coroutine.resume(coroutine.create(function()
  1382. for i = 1, 3 do
  1383. CreateSwirl(0,size*0.8,true,-0.2,25,Torso.CFrame * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360))),"Pear")
  1384. end
  1385. local wave = CreatePart(3, Effects, "Neon", 0, 0.8, BRICKC("Pearl"), "Effect", VT(1,1,1))
  1386. local mesh = IT("SpecialMesh",wave)
  1387. mesh.MeshType = "Sphere"
  1388. mesh.Scale = VT(size,size,size)
  1389. mesh.Offset = VT(0,0,0)
  1390. wave.CFrame = Torso.CFrame
  1391. coroutine.resume(coroutine.create(function(PART)
  1392. for i = 1, 25 do
  1393. Swait()
  1394. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  1395. wave.Transparency = wave.Transparency + (0.2/25)
  1396. end
  1397. wave:remove()
  1398. end))
  1399. end))
  1400. end
  1401.  
  1402. --//=================================\\
  1403. --|| ASSIGN THINGS TO KEYS
  1404. --\\=================================//
  1405.  
  1406. function MouseDown(Mouse)
  1407. if ATTACK == false then
  1408. end
  1409. end
  1410.  
  1411. function MouseUp(Mouse)
  1412. HOLD = false
  1413. end
  1414.  
  1415. function KeyDown(Key)
  1416. KEYHOLD = true
  1417. if Key == "x" and ATTACK == false then
  1418. if VALUE1 == true then
  1419. VALUE1 = false
  1420. SKILL1TEXT.Text = "[X] Toggle [OFF]"
  1421. elseif VALUE1 == false then
  1422. VALUE1 = true
  1423. SKILL1TEXT.Text = "[X] Toggle [ON]"
  1424. end
  1425. end
  1426. end
  1427.  
  1428. function KeyUp(Key)
  1429. KEYHOLD = false
  1430. end
  1431.  
  1432. Mouse.Button1Down:connect(function(NEWKEY)
  1433. MouseDown(NEWKEY)
  1434. end)
  1435. Mouse.Button1Up:connect(function(NEWKEY)
  1436. MouseUp(NEWKEY)
  1437. end)
  1438. Mouse.KeyDown:connect(function(NEWKEY)
  1439. KeyDown(NEWKEY)
  1440. end)
  1441. Mouse.KeyUp:connect(function(NEWKEY)
  1442. KeyUp(NEWKEY)
  1443. end)
  1444.  
  1445. --//=================================\\
  1446. --\\=================================//
  1447.  
  1448.  
  1449. function unanchor()
  1450. if UNANCHOR == true then
  1451. g = Character:GetChildren()
  1452. for i = 1, #g do
  1453. if g[i].ClassName == "Part" then
  1454. g[i].Anchored = false
  1455. end
  1456. end
  1457. end
  1458. end
  1459.  
  1460. local ff = IT("ForceField",Character)
  1461. ff.Visible = false
  1462.  
  1463. --//=================================\\
  1464. --|| WRAP THE WHOLE SCRIPT UP
  1465. --\\=================================//
  1466.  
  1467. Humanoid.HealthChanged:connect(function()
  1468. if Humanoid.Health ~= "inf" then
  1469. Humanoid.Health = "inf"
  1470. end
  1471. if Humanoid.MaxHealth ~= "inf" then
  1472. Humanoid.MaxHealth = "inf"
  1473. end
  1474. end)
  1475.  
  1476.  
  1477. VALUE1 = true
  1478.  
  1479. while true do
  1480. Swait()
  1481. if #Effects2>0 then
  1482. for e=1,#Effects2 do
  1483. if Effects2[e]~=nil then
  1484. local Thing=Effects2[e]
  1485. if Thing~=nil then
  1486. local Part=Thing[1]
  1487. local Mode=Thing[2]
  1488. local Delay=Thing[3]
  1489. local IncX=Thing[4]
  1490. local IncY=Thing[5]
  1491. local IncZ=Thing[6]
  1492. local Part2=Thing[8]
  1493. if Thing[1].Transparency<=1 then
  1494. if Thing[2]=="Block1" then
  1495. Thing[1].CFrame=Thing[1].CFrame
  1496. Mesh=Thing[1].Mesh
  1497. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1498. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1499. elseif Thing[2]=="Cylinder" then
  1500. Mesh=Thing[1].Mesh
  1501. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1502. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1503. elseif Thing[2]=="Blood" then
  1504. Mesh=Thing[7]
  1505. Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
  1506. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1507. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1508. elseif Thing[2]=="Elec" then
  1509. Mesh=Thing[1].Mesh
  1510. Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
  1511. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1512. elseif Thing[2]=="Disappear" then
  1513. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1514. end
  1515. else
  1516. Part.Parent=nil
  1517. table.remove(Effects2,e)
  1518. end
  1519. end
  1520. end
  1521. end
  1522. end
  1523. unanchor()
  1524. Humanoid.MaxHealth = "inf"
  1525. Humanoid.Health = "inf"
  1526. if VALUE1 == true then
  1527. CastEffective(Torso.Position,10,100)
  1528. end
  1529. local MATHS = {"A","C","E","G","I","K","N","P"}
  1530. Humanoid.Name = MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]
  1531. end
  1532.  
  1533. --//=================================\\
  1534. --\\=================================//
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540. --//====================================================\\--
  1541. --|| END OF SCRIPT
  1542. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement