Advertisement
good_scripter

Untitled

Jun 26th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.69 KB | None | 0 0
  1. --//====================================================\\--
  2. --|| CREATED BY SHACKLUSTER
  3. --\\====================================================//--
  4.  
  5.  
  6.  
  7. wait(0.2)
  8.  
  9.  
  10.  
  11. Player = owner
  12. PlayerGui = Player.PlayerGui
  13. Cam = workspace.CurrentCamera
  14. Backpack = Player.Backpack
  15. Character = Player.Character
  16. Humanoid = Character.Humanoid
  17. RootPart = Character["HumanoidRootPart"]
  18. Torso = Character["Torso"]
  19. Head = Character["Head"]
  20. RightArm = Character["Right Arm"]
  21. LeftArm = Character["Left Arm"]
  22. RightLeg = Character["Right Leg"]
  23. LeftLeg = Character["Left Leg"]
  24. RootJoint = RootPart["RootJoint"]
  25. Neck = Torso["Neck"]
  26. RightShoulder = Torso["Right Shoulder"]
  27. LeftShoulder = Torso["Left Shoulder"]
  28. RightHip = Torso["Right Hip"]
  29. LeftHip = Torso["Left Hip"]
  30.  
  31. IT = Instance.new
  32. CF = CFrame.new
  33. VT = Vector3.new
  34. RAD = math.rad
  35. C3 = Color3.new
  36. UD2 = UDim2.new
  37. BRICKC = BrickColor.new
  38. ANGLES = CFrame.Angles
  39. EULER = CFrame.fromEulerAnglesXYZ
  40. COS = math.cos
  41. ACOS = math.acos
  42. SIN = math.sin
  43. ASIN = math.asin
  44. ABS = math.abs
  45. MRANDOM = math.random
  46. FLOOR = math.floor
  47.  
  48. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  49. local NEWMESH = IT(MESH)
  50. if MESH == "SpecialMesh" then
  51. NEWMESH.MeshType = MESHTYPE
  52. if MESHID ~= "nil" and MESHID ~= "" then
  53. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  54. end
  55. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  56. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  57. end
  58. end
  59. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  60. NEWMESH.Scale = SCALE
  61. NEWMESH.Parent = PARENT
  62. return NEWMESH
  63. end
  64.  
  65. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
  66. local NEWPART = IT("Part")
  67. NEWPART.formFactor = FORMFACTOR
  68. NEWPART.Reflectance = REFLECTANCE
  69. NEWPART.Transparency = TRANSPARENCY
  70. NEWPART.CanCollide = false
  71. NEWPART.Locked = true
  72. NEWPART.Anchored = true
  73. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  74. NEWPART.Name = NAME
  75. NEWPART.Size = SIZE
  76. NEWPART.Position = Torso.Position
  77. NEWPART.Material = MATERIAL
  78. NEWPART:BreakJoints()
  79. NEWPART.Parent = PARENT
  80. return NEWPART
  81. end
  82.  
  83.  
  84. --//=================================\\
  85. --|| CUSTOMIZATION
  86. --\\=================================//
  87.  
  88. Class_Name = "Nigger OP Hole"
  89. Weapon_Name = "Add-ons"
  90.  
  91. Custom_Colors = {
  92. Custom_Color_1 = BRICKC("Institutional black"); --1st color for the weapon.
  93. Custom_Color_2 = BRICKC("Institutional black"); --2nd color for the weapon.
  94.  
  95. Custom_Color_3 = BRICKC("Institutional red"); --Color for the abilities.
  96. Custom_Color_4 = BRICKC("Institutional red"); --Color for the secondary bar.
  97. Custom_Color_5 = BRICKC("Institutional red"); --Color for the mana bar.
  98. Custom_Color_6 = BRICKC("Institutional red"); --Color for the health bar.
  99. Custom_Color_7 = BRICKC("Institutional red"); --Color for the stun bar.
  100.  
  101. Custom_Color_8 = BRICKC("Institutional red"); --Background for the mana bar.
  102. Custom_Color_9 = BRICKC("Institutional red"); --Background for the secondary mana bar.
  103. Custom_Color_10 = BRICKC("Institutional red"); --Background for the stun bar.
  104. Custom_Color_11 = BRICKC("Institutional red"); --Background for the health bar.
  105. Custom_Color_12 = BRICKC("Institutional red"); --Background for the abilities.
  106. }
  107.  
  108.  
  109. Player_Size = 1 --Size of the player.
  110. Animation_Speed = 3
  111. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  112.  
  113. local Speed = 16
  114. local Effects2 = {}
  115.  
  116. --//=================================\\
  117. --|| END OF CUSTOMIZATION
  118. --\\=================================//
  119.  
  120. local function weldBetween(a, b)
  121. local weldd = Instance.new("ManualWeld")
  122. weldd.Part0 = a
  123. weldd.Part1 = b
  124. weldd.C0 = CFrame.new()
  125. weldd.C1 = b.CFrame:inverse() * a.CFrame
  126. weldd.Parent = a
  127. return weldd
  128. end
  129.  
  130. --//=================================\\
  131. --|| USEFUL VALUES
  132. --\\=================================//
  133.  
  134. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  135. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  136. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  137. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  138. local CO1 = 0
  139. local CO2 = 0
  140. local CO3 = 0
  141. local CO4 = 0
  142. local CHANGEDEFENSE = 0
  143. local CHANGEDAMAGE = 0
  144. local CHANGEMOVEMENT = 0
  145. local ANIM = "Idle"
  146. local ATTACK = false
  147. local EQUIPPED = false
  148. local HOLD = false
  149. local COMBO = 1
  150. local LASTPOINT = nil
  151. local BLCF = nil
  152. local SCFR = nil
  153. local STAGGERHITANIM = false
  154. local STAGGERANIM = false
  155. local STUNANIM = false
  156. local CRITCHANCENUMBER = 0
  157. local IDLENUMBER = 0
  158. local DONUMBER = 0
  159. local HANDIDLE = false
  160. local PLAYINGMUSIC = false
  161. local SINE = 0
  162. local CHANGE = 2 / Animation_Speed
  163. local WALKINGANIM = false
  164. local WALK = 0
  165. local DISABLEJUMPING = false
  166. local HASBEENBLOCKED = false
  167. local STUNDELAYNUMBER = 0
  168. local MANADELAYNUMBER = 0
  169. local SOUND = nil
  170. local SECONDARYMANADELAYNUMBER = 0
  171. local ROBLOXIDLEANIMATION = IT("Animation")
  172. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  173. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  174. --ROBLOXIDLEANIMATION.Parent = Humanoid
  175. local WEAPONGUI = IT("ScreenGui", nil)
  176. WEAPONGUI.Name = "Weapon GUI"
  177. local WEAPONTOOL = IT("HopperBin", nil)
  178. WEAPONTOOL.Name = Weapon_Name
  179. local Weapon = IT("Model")
  180. Weapon.Name = Weapon_Name
  181. local Effects = IT("Folder", Weapon)
  182. Effects.Name = "Effects"
  183. local ANIMATOR = Humanoid.Animator
  184. local ANIMATE = Character.Animate
  185. local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
  186. local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
  187. local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
  188. local HITBLOCKSOUNDS = {"199148933", "199148947"}
  189. local PEWSOUND = {"907527750","907527912","907528019","907530553"}
  190. local BULLETLOOPSOUND = "907530407"
  191. local BULLETIMPACTSOUND = "907532865"
  192. local UNANCHOR = true
  193. local MAGICPARTICLE = "655109389"
  194. local Rooted = false
  195. local GRABBED = false
  196. local X = 10
  197. local Y = 10
  198. local Z = 10
  199. local CUSTOMMOVEMENT = false
  200. local FLIGHT = false
  201. local VACUUM = false
  202.  
  203. --//=================================\\
  204. --\\=================================//
  205.  
  206.  
  207.  
  208.  
  209. --//=================================\\
  210. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  211. --\\=================================//
  212.  
  213. ArtificialHB = Instance.new("BindableEvent", script)
  214. ArtificialHB.Name = "ArtificialHB"
  215.  
  216. script:WaitForChild("ArtificialHB")
  217.  
  218. frame = Frame_Speed
  219. tf = 0
  220. allowframeloss = false
  221. tossremainder = false
  222. lastframe = tick()
  223. script.ArtificialHB:Fire()
  224.  
  225. game:GetService("RunService").Heartbeat:connect(function(s, p)
  226. tf = tf + s
  227. if tf >= frame then
  228. if allowframeloss then
  229. script.ArtificialHB:Fire()
  230. lastframe = tick()
  231. else
  232. for i = 1, math.floor(tf / frame) do
  233. script.ArtificialHB:Fire()
  234. end
  235. lastframe = tick()
  236. end
  237. if tossremainder then
  238. tf = 0
  239. else
  240. tf = tf - frame * math.floor(tf / frame)
  241. end
  242. end
  243. end)
  244.  
  245. --//=================================\\
  246. --\\=================================//
  247.  
  248.  
  249.  
  250.  
  251.  
  252. --//=================================\\
  253. --|| SOME FUNCTIONS
  254. --\\=================================//
  255.  
  256. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  257. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  258. end
  259.  
  260. function PositiveAngle(NUMBER)
  261. if NUMBER >= 0 then
  262. NUMBER = 0
  263. end
  264. return NUMBER
  265. end
  266.  
  267. function NegativeAngle(NUMBER)
  268. if NUMBER <= 0 then
  269. NUMBER = 0
  270. end
  271. return NUMBER
  272. end
  273.  
  274. function Swait(NUMBER)
  275. if NUMBER == 0 or NUMBER == nil then
  276. ArtificialHB.Event:wait()
  277. else
  278. for i = 1, NUMBER do
  279. ArtificialHB.Event:wait()
  280. end
  281. end
  282. end
  283.  
  284. function QuaternionFromCFrame(cf)
  285. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  286. local trace = m00 + m11 + m22
  287. if trace > 0 then
  288. local s = math.sqrt(1 + trace)
  289. local recip = 0.5 / s
  290. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  291. else
  292. local i = 0
  293. if m11 > m00 then
  294. i = 1
  295. end
  296. if m22 > (i == 0 and m00 or m11) then
  297. i = 2
  298. end
  299. if i == 0 then
  300. local s = math.sqrt(m00 - m11 - m22 + 1)
  301. local recip = 0.5 / s
  302. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  303. elseif i == 1 then
  304. local s = math.sqrt(m11 - m22 - m00 + 1)
  305. local recip = 0.5 / s
  306. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  307. elseif i == 2 then
  308. local s = math.sqrt(m22 - m00 - m11 + 1)
  309. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  310. end
  311. end
  312. end
  313.  
  314. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  315. local xs, ys, zs = x + x, y + y, z + z
  316. local wx, wy, wz = w * xs, w * ys, w * zs
  317. local xx = x * xs
  318. local xy = x * ys
  319. local xz = x * zs
  320. local yy = y * ys
  321. local yz = y * zs
  322. local zz = z * zs
  323. 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))
  324. end
  325.  
  326. function QuaternionSlerp(a, b, t)
  327. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  328. local startInterp, finishInterp;
  329. if cosTheta >= 0.0001 then
  330. if (1 - cosTheta) > 0.0001 then
  331. local theta = ACOS(cosTheta)
  332. local invSinTheta = 1 / SIN(theta)
  333. startInterp = SIN((1 - t) * theta) * invSinTheta
  334. finishInterp = SIN(t * theta) * invSinTheta
  335. else
  336. startInterp = 1 - t
  337. finishInterp = t
  338. end
  339. else
  340. if (1 + cosTheta) > 0.0001 then
  341. local theta = ACOS(-cosTheta)
  342. local invSinTheta = 1 / SIN(theta)
  343. startInterp = SIN((t - 1) * theta) * invSinTheta
  344. finishInterp = SIN(t * theta) * invSinTheta
  345. else
  346. startInterp = t - 1
  347. finishInterp = t
  348. end
  349. end
  350. 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
  351. end
  352.  
  353. function Clerp(a, b, t)
  354. local qa = {QuaternionFromCFrame(a)}
  355. local qb = {QuaternionFromCFrame(b)}
  356. local ax, ay, az = a.x, a.y, a.z
  357. local bx, by, bz = b.x, b.y, b.z
  358. local _t = 1 - t
  359. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  360. end
  361.  
  362. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  363. local frame = IT("Frame")
  364. frame.BackgroundTransparency = TRANSPARENCY
  365. frame.BorderSizePixel = BORDERSIZEPIXEL
  366. frame.Position = POSITION
  367. frame.Size = SIZE
  368. frame.BackgroundColor3 = COLOR
  369. frame.BorderColor3 = BORDERCOLOR
  370. frame.Name = NAME
  371. frame.Parent = PARENT
  372. return frame
  373. end
  374.  
  375. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  376. local label = IT("TextLabel")
  377. label.BackgroundTransparency = 1
  378. label.Size = UD2(1, 0, 1, 0)
  379. label.Position = UD2(0, 0, 0, 0)
  380. label.TextColor3 = C3(255, 255, 255)
  381. label.TextStrokeTransparency = STROKETRANSPARENCY
  382. label.TextTransparency = TRANSPARENCY
  383. label.FontSize = TEXTFONTSIZE
  384. label.Font = TEXTFONT
  385. label.BorderSizePixel = BORDERSIZEPIXEL
  386. label.TextScaled = true
  387. label.Text = TEXT
  388. label.Name = NAME
  389. label.Parent = PARENT
  390. return label
  391. end
  392.  
  393. function NoOutlines(PART)
  394. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  395. end
  396.  
  397.  
  398. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  399. local NEWWELD = IT(TYPE)
  400. NEWWELD.Part0 = PART0
  401. NEWWELD.Part1 = PART1
  402. NEWWELD.C0 = C0
  403. NEWWELD.C1 = C1
  404. NEWWELD.Parent = PARENT
  405. return NEWWELD
  406. end
  407.  
  408. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  409. local NEWSOUND = nil
  410. coroutine.resume(coroutine.create(function()
  411. NEWSOUND = IT("Sound", PARENT)
  412. NEWSOUND.Volume = VOLUME
  413. NEWSOUND.Pitch = PITCH
  414. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  415. Swait()
  416. NEWSOUND:play()
  417. if DOESLOOP == false then
  418. repeat Swait() until NEWSOUND.Playing == false
  419. NEWSOUND:remove()
  420. elseif DOESLOOP == true then
  421. NEWSOUND.Looped = true
  422. end
  423. end))
  424. return NEWSOUND
  425. end
  426.  
  427. function CFrameFromTopBack(at, top, back)
  428. local right = top:Cross(back)
  429. 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)
  430. end
  431.  
  432. function CreateWave(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
  433. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  434. local mesh = IT("SpecialMesh",wave)
  435. mesh.MeshType = "FileMesh"
  436. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  437. mesh.Scale = VT(size,size,size)
  438. mesh.Offset = VT(0,0,-size/8)
  439. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
  440. coroutine.resume(coroutine.create(function(PART)
  441. for i = 1, waitt do
  442. Swait()
  443. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  444. mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  445. if doesrotate == true then
  446. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  447. end
  448. wave.Transparency = wave.Transparency + (0.5/waitt)
  449. if wave.Transparency > 0.99 then
  450. wave:remove()
  451. end
  452. end
  453. end))
  454. end
  455.  
  456. function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
  457. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  458. local mesh = IT("SpecialMesh",wave)
  459. mesh.MeshType = "FileMesh"
  460. mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
  461. mesh.Scale = VT(size,size,size)
  462. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
  463. coroutine.resume(coroutine.create(function(PART)
  464. for i = 1, waitt do
  465. Swait()
  466. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  467. if doesrotate == true then
  468. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  469. end
  470. wave.Transparency = wave.Transparency + (0.5/waitt)
  471. if wave.Transparency > 0.99 then
  472. wave:remove()
  473. end
  474. end
  475. end))
  476. end
  477.  
  478. function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
  479. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  480. local mesh = IT("SpecialMesh",wave)
  481. mesh.MeshType = "FileMesh"
  482. mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
  483. mesh.Scale = VT(size,size,size)
  484. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
  485. coroutine.resume(coroutine.create(function(PART)
  486. for i = 1, waitt do
  487. Swait()
  488. mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
  489. if doesrotate == true then
  490. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  491. end
  492. wave.Transparency = wave.Transparency + (0.5/waitt)
  493. if wave.Transparency > 0.99 then
  494. wave:remove()
  495. end
  496. end
  497. end))
  498. end
  499.  
  500. function CreateRing(inair,size,doesrotate,rotatedirection,waitt,part,offset,spin1,spin2,color)
  501. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
  502. local mesh = IT("SpecialMesh",wave)
  503. mesh.MeshType = "FileMesh"
  504. mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  505. mesh.Scale = VT(size,size,size)
  506. mesh.Offset = VT(0,0,0)
  507. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
  508. coroutine.resume(coroutine.create(function(PART)
  509. for i = 1, waitt do
  510. Swait()
  511. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  512. if doesrotate == true then
  513. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
  514. end
  515. wave.Transparency = wave.Transparency + (1/waitt)
  516. if wave.Transparency > 0.99 then
  517. wave:remove()
  518. end
  519. end
  520. end))
  521. end
  522.  
  523. function MagicSphere(size,waitt,part,offset,color)
  524. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(1,1,1))
  525. local mesh = IT("SpecialMesh",wave)
  526. mesh.MeshType = "Sphere"
  527. mesh.Scale = VT(size,size,size)
  528. mesh.Offset = VT(0,0,0)
  529. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
  530. coroutine.resume(coroutine.create(function(PART)
  531. for i = 1, waitt do
  532. Swait()
  533. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  534. wave.Transparency = wave.Transparency + (1/waitt)
  535. if wave.Transparency > 0.99 then
  536. wave:remove()
  537. end
  538. end
  539. end))
  540. end
  541.  
  542. function clerp(a, b, t)
  543. return a:lerp(b, t)
  544. end
  545.  
  546. function newBezier(startpos, pos2, pos3, endpos, t)
  547. local A = clerp(startpos, pos2, t)
  548. local B = clerp(pos2, pos3, t)
  549. local C = clerp(pos3, endpos, t)
  550. local lerp1 = clerp(A, B, t)
  551. local lerp2 = clerp(B, C, t)
  552. local cubic = clerp(lerp1, lerp2, t)
  553. return cubic
  554. end
  555.  
  556. function MagicBlock(size,waitt,part,offset,color)
  557. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
  558. local mesh = IT("BlockMesh",wave)
  559. wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
  560. coroutine.resume(coroutine.create(function(PART)
  561. for i = 1, waitt do
  562. Swait()
  563. mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
  564. wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
  565. wave.Transparency = wave.Transparency + (0.5/waitt)
  566. if wave.Transparency > 0.99 then
  567. wave:remove()
  568. end
  569. end
  570. end))
  571. end
  572.  
  573. local EyeSizes={
  574. NumberSequenceKeypoint.new(0,1,0),
  575. NumberSequenceKeypoint.new(1,0.2,0)
  576. }
  577. local EyeTrans={
  578. NumberSequenceKeypoint.new(0,0.8,0),
  579. NumberSequenceKeypoint.new(1,1,0)
  580. }
  581. local PE=Instance.new("ParticleEmitter")
  582. PE.LightEmission=0
  583. PE.Size=NumberSequence.new(EyeSizes)
  584. PE.Transparency=NumberSequence.new(EyeTrans)
  585. PE.Lifetime=NumberRange.new(0.35,0.35,0.35)
  586. PE.Rotation=NumberRange.new(0,360)
  587. PE.Rate=15
  588. PE.Acceleration = Vector3.new(0,75,0)
  589. PE.Drag = 5
  590. PE.Enabled = false
  591. PE.RotSpeed = NumberRange.new(75)
  592. PE.Speed = NumberRange.new(0,0,0)
  593. PE.Texture="http://www.roblox.com/asset/?id=1179557490"
  594. PE.ZOffset = 0
  595. PE.Name = "Particles"
  596.  
  597. function CreateParticles(art,accel,drag,rate,type,isenabledbydefault,locked,size)
  598. local particle = PE:Clone()
  599. particle.Parent = art
  600. particle.Acceleration = accel
  601. particle.Rate = rate
  602. if type == "Fire" then
  603. local EyeSizes={
  604. NumberSequenceKeypoint.new(0,size,size*0.3),
  605. NumberSequenceKeypoint.new(1,0.2,0.2)
  606. }
  607. particle.Size = NumberSequence.new(EyeSizes)
  608. elseif type == "Smoke" then
  609. local EyeSizes={
  610. NumberSequenceKeypoint.new(0,size,0),
  611. NumberSequenceKeypoint.new(1,size*5,0.5)
  612. }
  613. particle.Size = NumberSequence.new(EyeSizes)
  614. elseif type == "Solid" then
  615. local EyeSizes={
  616. NumberSequenceKeypoint.new(0,size,0),
  617. NumberSequenceKeypoint.new(1,size,0)
  618. }
  619. particle.Size = NumberSequence.new(EyeSizes)
  620. end
  621. particle.LockedToPart = locked
  622. particle.Drag = drag
  623. particle.Texture = "http://www.roblox.com/asset/?id=43997508"
  624. particle.Enabled = isenabledbydefault
  625. return particle
  626. end
  627.  
  628. --//=================================\\
  629. --\\=================================//
  630.  
  631.  
  632. --//=================================\\
  633. --|| WEAPON CREATION
  634. --\\=================================//
  635.  
  636. if Player_Size ~= 1 then
  637. for _, v in pairs (Weapon:GetChildren()) do
  638. if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
  639. local p1 = v.Part1
  640. v.Part1 = nil
  641. local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
  642. v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
  643. v.Part1 = p1
  644. elseif v.ClassName == "Part" then
  645. for _, b in pairs (v:GetChildren()) do
  646. if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
  647. b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
  648. end
  649. end
  650. end
  651. end
  652. end
  653.  
  654. for _, c in pairs(Weapon:GetChildren()) do
  655. if c.ClassName == "Part" then
  656. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  657. end
  658. end
  659.  
  660. Weapon.Parent = Character
  661.  
  662. Humanoid.Died:connect(function()
  663. ATTACK = true
  664. end)
  665.  
  666. print(Class_Name.." loaded.")
  667.  
  668. local ORB = IT("Part",Weapon)
  669. ORB.CanCollide = false
  670. ORB.Anchored = false
  671. ORB.CFrame = RootPart.CFrame
  672. ORB.Shape = "Ball"
  673. ORB.Material = "Neon"
  674. ORB.Size = VT(0.2,0.2,0.2)
  675. ORB.Color = C3(0.5,0,1)
  676. local Orbmesh = IT("SpecialMesh",ORB)
  677. Orbmesh.MeshType = "Sphere"
  678. Orbmesh.Scale = VT(10,10,10)
  679. local grav = Instance.new("BodyPosition",ORB)
  680. grav.P = 20000
  681. grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  682. grav.position = RootPart.CFrame*CF(3,0.7,-1).p
  683. grav.Name = "GravityForce"
  684. CreateParticles(ORB,VT(0,0,0),0,150,"Solid",true,true,4)
  685.  
  686. --//=================================\\
  687. --\\=================================//
  688.  
  689. function onChatted(msg)
  690. if msg:sub(1,10) == "Orb, play " then
  691. local ID = msg:sub(11)
  692. if SOUND == nil then
  693. SOUND = CreateSound(ID, ORB, 5, 1, true)
  694. else
  695. SOUND:remove()
  696. SOUND = CreateSound(ID, ORB, 5, 1, true)
  697. end
  698. PLAYINGMUSIC = true
  699. elseif msg == "Orb, stop music" then
  700. if SOUND ~= nil then
  701. SOUND:remove()
  702. PLAYINGMUSIC = false
  703. elseif msg == "Orb, do you like me?" then
  704. CreateSound("269597232", ORB, 1, 1, false)
  705. end
  706. end
  707. end
  708. Player.Chatted:connect(onChatted)
  709.  
  710. --//=================================\\
  711. --|| ABILITIES
  712. --\\=================================//
  713.  
  714. function turnto(pos,part)
  715. part.CFrame = CF(part.Position,VT(pos.X,RootPart.Position.Y,pos.Z))
  716. end
  717.  
  718. function Warp()
  719. ATTACK = true
  720. Rooted = true
  721. CUSTOMMOVEMENT = true
  722. grav.position = RootPart.CFrame.p
  723. Swait(50)
  724. CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
  725. for i = 1, 25 do
  726. Swait()
  727. X = X + 1
  728. Y = X
  729. Z = X
  730. end
  731. local weld = weldBetween(Torso,ORB)
  732. grav.position = VT(Mouse.Hit.p.X,Mouse.Hit.p.Y+4,Mouse.Hit.p.Z)
  733. Swait(50)
  734. CUSTOMMOVEMENT = false
  735. weld:remove()
  736. for i = 1, 25 do
  737. Swait()
  738. X = X - 1
  739. Y = X
  740. Z = X
  741. end
  742. ATTACK = false
  743. Rooted = false
  744. end
  745.  
  746. function StartFlight()
  747. Rooted = true
  748. CUSTOMMOVEMENT = true
  749. grav.position = RootPart.Position
  750. Swait(50)
  751. grav.P = 500
  752. CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
  753. for i = 1, 10 do
  754. Swait()
  755. X = X - 1
  756. Y = X
  757. Z = X
  758. end
  759. local weld = weldBetween(Torso,ORB)
  760. repeat
  761. Swait()
  762. grav.position = Mouse.Hit.p
  763. turnto(Mouse.Hit.p,RootPart)
  764. until FLIGHT == false
  765. grav.P = 20000
  766. CUSTOMMOVEMENT = false
  767. weld:remove()
  768. for i = 1, 10 do
  769. Swait()
  770. X = X + 1
  771. Y = X
  772. Z = X
  773. end
  774. Rooted = false
  775. end
  776.  
  777. function succnearest(position,range,force,doesbreak)
  778. for i,v in ipairs(workspace:GetChildren()) do
  779. local body = v:GetChildren()
  780. for part = 1, #body do
  781. if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  782. if(body[part].Position - position).Magnitude < range then
  783. local bv = Instance.new("BodyVelocity")
  784. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  785. bv.velocity = CF(body[part].Position,position).lookVector*force
  786. bv.Parent = body[part]
  787. bv.Name = "SUCC"
  788. if v:FindFirstChild("Humanoid") and doesbreak == false then
  789. dealdamage(body[part],5,15,0,false,12,2)
  790. end
  791. if v.ClassName == "Model" and doesbreak == true then
  792. v:BreakJoints()
  793. end
  794. game:GetService("Debris"):AddItem(bv, 0.1)
  795. end
  796. end
  797. end
  798. if v.ClassName == "Part" then
  799. if v.Anchored == false and (v.Position - position).Magnitude < range then
  800. local bv = Instance.new("BodyVelocity")
  801. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  802. bv.velocity = CF(v.Position,position).lookVector*force
  803. bv.Parent = v
  804. bv.Name = "SUCC"
  805. game:GetService("Debris"):AddItem(bv, 0.1)
  806. end
  807. end
  808. end
  809. end
  810.  
  811. function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
  812. if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
  813. local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
  814. local dmg = math.random(min,max)
  815. if humanoid.Health > 0 then
  816. if beserk == true then
  817. humanoid.Health = 0
  818. else
  819. --CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
  820. --hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
  821. if math.random(1,100) < critrate+1 then
  822. humanoid.Health = humanoid.Health - dmg*critmultiplier
  823. --StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
  824. else
  825. humanoid.Health = humanoid.Health - dmg
  826. --StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(255/255, 0, 0))
  827. end
  828. local defence = Instance.new("BoolValue",hit.Parent)
  829. defence.Name = ("HitBy"..Player.Name)
  830. game:GetService("Debris"):AddItem(defence, 0.5)
  831. end
  832. end
  833. end
  834. end
  835.  
  836. function Vacuum()
  837. CUSTOMMOVEMENT = true
  838. local succ = CreateSound("319444224", ORB, 0.3, 1, true)
  839. local harm = ORB.Touched:Connect(function(hit)
  840. if hit.Parent ~= Character and hit.Parent.ClassName ~= "Accessory" and hit.Parent ~= Effects and hit.Anchored == false then
  841. hit:remove()
  842. CreateSound("261732529", ORB, 3, 1,false)
  843. end
  844. end)
  845. repeat
  846. Swait()
  847. succnearest(ORB.Position,50,80,true)
  848. until VACUUM == false
  849. CUSTOMMOVEMENT = false
  850. succ:remove()
  851. harm:disconnect()
  852. end
  853.  
  854. function shootbullet()
  855. CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
  856. local bullet = IT("Part",Effects)
  857. bullet.Size = VT(1,1,1)
  858. bullet.Shape = "Ball"
  859. bullet.Material = "Neon"
  860. bullet.Color = C3(0.5,0,1)
  861. local sparks = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,2)
  862. bullet.CFrame = ORB.CFrame
  863. local bv = Instance.new("BodyVelocity")
  864. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  865. bv.velocity = CF(bullet.Position,Mouse.Hit.p).lookVector*200
  866. bv.Parent = bullet
  867. bv.Name = "MOVE"
  868. local loop = CreateSound(BULLETLOOPSOUND, bullet, 0.6, MRANDOM(9, 11) / 10,true)
  869. local HIT = false
  870. local harm = bullet.Touched:Connect(function(hit)
  871. if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
  872. HIT = true
  873. coroutine.resume(coroutine.create(function()
  874. coroutine.resume(coroutine.create(function()
  875. for i = 1, 10 do
  876. Swait()
  877. bullet.Transparency = bullet.Transparency + 0.1
  878. end
  879. end))
  880. bullet.Anchored = true
  881. bullet.CanCollide = false
  882. sparks.Enabled = false
  883. local sparks2 = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,7)
  884. loop.Volume = 3
  885. CreateSound(BULLETIMPACTSOUND, bullet, 2, MRANDOM(9, 11) / 10,false)
  886. for i = 1, 350 do
  887. Swait()
  888. succnearest(bullet.Position,15,25,false)
  889. end
  890. sparks2.Enabled = false
  891. for i = 1, 10 do
  892. Swait()
  893. loop.Volume = loop.Volume - (3/10)
  894. end
  895. bullet:remove()
  896. end))
  897. end
  898. end)
  899. end
  900.  
  901. function shoottoughbullet()
  902. CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
  903. local bullet = IT("Part",Effects)
  904. bullet.Size = VT(3,3,3)
  905. bullet.Shape = "Ball"
  906. bullet.Material = "Neon"
  907. bullet.Color = C3(0.5,0,1)
  908. local sparks = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,3.5)
  909. bullet.CFrame = ORB.CFrame
  910. local bv = Instance.new("BodyVelocity")
  911. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  912. bv.velocity = CF(bullet.Position,Mouse.Hit.p).lookVector*100
  913. bv.Parent = bullet
  914. bv.Name = "MOVE"
  915. local loop = CreateSound(BULLETLOOPSOUND, bullet, 0.6, MRANDOM(5, 7) / 10,true)
  916. local HIT = false
  917. local harm = bullet.Touched:Connect(function(hit)
  918. if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
  919. HIT = true
  920. coroutine.resume(coroutine.create(function()
  921. coroutine.resume(coroutine.create(function()
  922. for i = 1, 10 do
  923. Swait()
  924. bullet.Transparency = bullet.Transparency + 0.1
  925. end
  926. end))
  927. bullet.Anchored = true
  928. bullet.CanCollide = false
  929. sparks.Enabled = false
  930. local sparks2 = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,15)
  931. loop.Volume = 3
  932. CreateSound(BULLETIMPACTSOUND, bullet, 6, MRANDOM(5,7) / 10,false)
  933. for i = 1, 50 do
  934. Swait()
  935. succnearest(bullet.Position,25,100,true)
  936. end
  937. sparks2.Enabled = false
  938. for i = 1, 10 do
  939. Swait()
  940. loop.Volume = loop.Volume - (3/10)
  941. end
  942. bullet:remove()
  943. end))
  944. end
  945. end)
  946. end
  947.  
  948. function grab()
  949. if Mouse.Target.Parent:FindFirstChild("Torso") then
  950. local targ = Mouse.Target
  951. GRABBED = true
  952. targ.Anchored = true
  953. CUSTOMMOVEMENT = true
  954. grav.position = targ.Position
  955. Swait(50)
  956. if targ then
  957. Swait(5)
  958. targ.Anchored = false
  959. CUSTOMMOVEMENT = false
  960. repeat
  961. Swait()
  962. targ.CFrame = ORB.CFrame
  963. until GRABBED == false or targ == nil
  964. GRABBED = false
  965. end
  966. end
  967. end
  968.  
  969. --//=================================\\
  970. --|| ASSIGN THINGS TO KEYS
  971. --\\=================================//
  972.  
  973. Humanoid.Changed:connect(function(Jump)
  974. if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
  975. Humanoid.Jump = false
  976. end
  977. end)
  978.  
  979. function MouseDown(Mouse)
  980. if ATTACK == false then
  981. end
  982. end
  983.  
  984. function MouseUp(Mouse)
  985. HOLD = false
  986. end
  987.  
  988. function KeyDown(Key)
  989. if ATTACK == false then
  990. if Key == "e" and VACUUM == false and FLIGHT == false and GRABBED == false then
  991. Warp()
  992. end
  993. if Key == "z" and VACUUM == false and GRABBED == false then
  994. if FLIGHT == false then
  995. FLIGHT = true
  996. StartFlight()
  997. elseif FLIGHT == true then
  998. FLIGHT = false
  999. end
  1000. end
  1001. if Key == "h" then
  1002. shootbullet()
  1003. end
  1004. if Key == "]" then
  1005. shoottoughbullet()
  1006. end
  1007. if Key == "c" and VACUUM == false then
  1008. if GRABBED == false then
  1009. grab()
  1010. elseif GRABBED == true then
  1011. GRABBED = false
  1012. end
  1013. end
  1014. if Key == "x" then
  1015. if VACUUM == false then
  1016. VACUUM = true
  1017. Vacuum()
  1018. elseif VACUUM == true then
  1019. VACUUM = false
  1020. end
  1021. end
  1022. end
  1023. end
  1024.  
  1025. function KeyUp(Key)
  1026. end
  1027.  
  1028. Mouse.Button1Down:connect(function(NEWKEY)
  1029. MouseDown(NEWKEY)
  1030. end)
  1031. Mouse.Button1Up:connect(function(NEWKEY)
  1032. MouseUp(NEWKEY)
  1033. end)
  1034. Mouse.KeyDown:connect(function(NEWKEY)
  1035. KeyDown(NEWKEY)
  1036. end)
  1037. Mouse.KeyUp:connect(function(NEWKEY)
  1038. KeyUp(NEWKEY)
  1039. end)
  1040.  
  1041. --//=================================\\
  1042. --\\=================================//
  1043.  
  1044.  
  1045. function unanchor()
  1046. if UNANCHOR == true then
  1047. g = Character:GetChildren()
  1048. for i = 1, #g do
  1049. if g[i].ClassName == "Part" then
  1050. g[i].Anchored = false
  1051. end
  1052. end
  1053. end
  1054. end
  1055.  
  1056.  
  1057. --//=================================\\
  1058. --|| WRAP THE WHOLE SCRIPT UP
  1059. --\\=================================//
  1060.  
  1061. Humanoid.Changed:connect(function(Jump)
  1062. if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
  1063. Humanoid.Jump = false
  1064. end
  1065. end)
  1066.  
  1067. local loop = 0
  1068. local aaa = 1/2
  1069. local loop2 = 0
  1070.  
  1071. while true do
  1072. Swait()
  1073. local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  1074. SINE = SINE + CHANGE
  1075. if #Effects2>0 then
  1076. for e=1,#Effects2 do
  1077. if Effects2[e]~=nil then
  1078. local Thing=Effects2[e]
  1079. if Thing~=nil then
  1080. local Part=Thing[1]
  1081. local Mode=Thing[2]
  1082. local Delay=Thing[3]
  1083. local IncX=Thing[4]
  1084. local IncY=Thing[5]
  1085. local IncZ=Thing[6]
  1086. local Part2=Thing[8]
  1087. if Thing[1].Transparency<=1 then
  1088. if Thing[2]=="Block1" then
  1089. Thing[1].CFrame=Thing[1].CFrame
  1090. Mesh=Thing[1].Mesh
  1091. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1092. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1093. elseif Thing[2]=="Cylinder" then
  1094. Mesh=Thing[1].Mesh
  1095. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1096. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1097. elseif Thing[2]=="Blood" then
  1098. Mesh=Thing[7]
  1099. Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
  1100. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  1101. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1102. elseif Thing[2]=="Elec" then
  1103. Mesh=Thing[1].Mesh
  1104. Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
  1105. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1106. elseif Thing[2]=="Disappear" then
  1107. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  1108. end
  1109. else
  1110. Part.Parent=nil
  1111. table.remove(Effects2,e)
  1112. end
  1113. end
  1114. end
  1115. end
  1116. end
  1117. unanchor()
  1118. Humanoid.MaxHealth = "inf"
  1119. Humanoid.Health = "inf"
  1120. if Rooted == false then
  1121. Disable_Jump = false
  1122. Humanoid.WalkSpeed = Speed
  1123. elseif Rooted == true then
  1124. Disable_Jump = true
  1125. Humanoid.WalkSpeed = 0
  1126. end
  1127. if CUSTOMMOVEMENT == false then
  1128. loop = loop + aaa
  1129. grav.position = RootPart.CFrame*CF(4,1+loop/10,1).p
  1130. if loop == 45/2 then
  1131. aaa = -1/2
  1132. elseif loop == -15/2 then
  1133. aaa = 1/2
  1134. end
  1135. else
  1136. end
  1137. if PLAYINGMUSIC == true then
  1138. Orbmesh.Scale = VT(X+SOUND.PlaybackLoudness/70,Y+SOUND.PlaybackLoudness/70,Z+SOUND.PlaybackLoudness/70)
  1139. else
  1140. Orbmesh.Scale = VT(X,Y,Z)
  1141. end
  1142. ORB.Anchored = false
  1143. end
  1144.  
  1145. --//=================================\\
  1146. --\\=================================//
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152. --//====================================================\\--
  1153. --|| END OF SCRIPT
  1154. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement