Advertisement
Godofadmin1337

giver script

Nov 1st, 2017
796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.63 KB | None | 0 0
  1.  
  2. --Converted with ttyyuu12345's model to script plugin v4
  3. function sandbox(var,func)
  4. local env = getfenv(func)
  5. local newenv = setmetatable({},{
  6. __index = function(self,k)
  7. if k=="script" then
  8. return var
  9. else
  10. return env[k]
  11. end
  12. end,
  13. })
  14. setfenv(func,newenv)
  15. return func
  16. end
  17. cors = {}
  18. mas = Instance.new("Model",game:GetService("Lighting"))
  19. Model0 = Instance.new("Model")
  20. Part1 = Instance.new("Part")
  21. Decal2 = Instance.new("Decal")
  22. Part3 = Instance.new("Part")
  23. Part4 = Instance.new("Part")
  24. Part5 = Instance.new("Part")
  25. Decal6 = Instance.new("Decal")
  26. Part7 = Instance.new("Part")
  27. Decal8 = Instance.new("Decal")
  28. Part9 = Instance.new("Part")
  29. Decal10 = Instance.new("Decal")
  30. Tool11 = Instance.new("Tool")
  31. LocalScript12 = Instance.new("LocalScript")
  32. Script13 = Instance.new("Script")
  33. Part14 = Instance.new("Part")
  34. SpecialMesh15 = Instance.new("SpecialMesh")
  35. Script16 = Instance.new("Script")
  36. ObjectValue17 = Instance.new("ObjectValue")
  37. ObjectValue18 = Instance.new("ObjectValue")
  38. Tool19 = Instance.new("Tool")
  39. LocalScript20 = Instance.new("LocalScript")
  40. Part21 = Instance.new("Part")
  41. BlockMesh22 = Instance.new("BlockMesh")
  42. Part23 = Instance.new("Part")
  43. BlockMesh24 = Instance.new("BlockMesh")
  44. Part25 = Instance.new("Part")
  45. SpecialMesh26 = Instance.new("SpecialMesh")
  46. Sound27 = Instance.new("Sound")
  47. Script28 = Instance.new("Script")
  48. Part29 = Instance.new("Part")
  49. Decal30 = Instance.new("Decal")
  50. Script31 = Instance.new("Script")
  51. Model0.Name = "Roblox Card Giver"
  52. Model0.Parent = mas
  53. Part1.Parent = Model0
  54. Part1.BrickColor = BrickColor.new("Really red")
  55. Part1.Rotation = Vector3.new(-180, 89.0599976, -180)
  56. Part1.Anchored = true
  57. Part1.Size = Vector3.new(4, 6, 1)
  58. Part1.CFrame = CFrame.new(71.3722382, 4.33997917, 127.511475, -0.0164914932, 0, 0.999864042, 0, 1, 0, -0.999864042, 0, -0.0164914932)
  59. Part1.Color = Color3.new(1, 0, 0)
  60. Part1.Position = Vector3.new(71.3722382, 4.33997917, 127.511475)
  61. Part1.Orientation = Vector3.new(0, 90.9399948, 0)
  62. Part1.Color = Color3.new(1, 0, 0)
  63. Decal2.Parent = Part1
  64. Decal2.Texture = "http://www.roblox.com/asset/?id=182077367"
  65. Decal2.Face = Enum.NormalId.Back
  66. Part3.Parent = Model0
  67. Part3.BrickColor = BrickColor.new("Really red")
  68. Part3.Rotation = Vector3.new(-180, 89.0599976, -180)
  69. Part3.Anchored = true
  70. Part3.Size = Vector3.new(4, 1.20000005, 6)
  71. Part3.CFrame = CFrame.new(68.8720016, 7.93994617, 127.552734, -0.0164914932, 0, 0.999864042, 0, 1, 0, -0.999864042, 0, -0.0164914932)
  72. Part3.Color = Color3.new(1, 0, 0)
  73. Part3.Position = Vector3.new(68.8720016, 7.93994617, 127.552734)
  74. Part3.Orientation = Vector3.new(0, 90.9399948, 0)
  75. Part3.Color = Color3.new(1, 0, 0)
  76. Part4.Parent = Model0
  77. Part4.BrickColor = BrickColor.new("Really red")
  78. Part4.Rotation = Vector3.new(-180, -0.939999998, -180)
  79. Part4.Anchored = true
  80. Part4.Size = Vector3.new(4, 6, 1)
  81. Part4.CFrame = CFrame.new(68.8966904, 4.33997917, 129.052902, -0.999864161, 0, -0.0164824761, 0, 1, 0, 0.0164824761, 0, -0.999864161)
  82. Part4.Color = Color3.new(1, 0, 0)
  83. Part4.Position = Vector3.new(68.8966904, 4.33997917, 129.052902)
  84. Part4.Orientation = Vector3.new(0, -179.059998, 0)
  85. Part4.Color = Color3.new(1, 0, 0)
  86. Part5.Parent = Model0
  87. Part5.BrickColor = BrickColor.new("Really red")
  88. Part5.Rotation = Vector3.new(-180, -0.939999998, -180)
  89. Part5.Anchored = true
  90. Part5.Size = Vector3.new(4, 6, 1)
  91. Part5.CFrame = CFrame.new(68.8473129, 4.33997917, 126.052528, -0.999864161, 0, -0.0164824761, 0, 1, 0, 0.0164824761, 0, -0.999864161)
  92. Part5.Color = Color3.new(1, 0, 0)
  93. Part5.Position = Vector3.new(68.8473129, 4.33997917, 126.052528)
  94. Part5.Orientation = Vector3.new(0, -179.059998, 0)
  95. Part5.Color = Color3.new(1, 0, 0)
  96. Decal6.Parent = Part5
  97. Decal6.Texture = "rbxgameasset://Images/roblox50"
  98. Decal6.Face = Enum.NormalId.Back
  99. Part7.Parent = Model0
  100. Part7.BrickColor = BrickColor.new("Really red")
  101. Part7.Rotation = Vector3.new(-180, 89.0599976, -180)
  102. Part7.Anchored = true
  103. Part7.Size = Vector3.new(4, 1.20000005, 6)
  104. Part7.CFrame = CFrame.new(68.8720016, 0.740036488, 127.552734, -0.0164914932, 0, 0.999864042, 0, 1, 0, -0.999864042, 0, -0.0164914932)
  105. Part7.Color = Color3.new(1, 0, 0)
  106. Part7.Position = Vector3.new(68.8720016, 0.740036488, 127.552734)
  107. Part7.Orientation = Vector3.new(0, 90.9399948, 0)
  108. Part7.Color = Color3.new(1, 0, 0)
  109. Decal8.Parent = Part7
  110. Decal8.Texture = "http://www.roblox.com/asset/?id=52658396"
  111. Part9.Name = "Button"
  112. Part9.Parent = Model0
  113. Part9.BrickColor = BrickColor.new("White")
  114. Part9.Rotation = Vector3.new(-180, 89.0599976, -180)
  115. Part9.Anchored = true
  116. Part9.Size = Vector3.new(1, 1.20000005, 6)
  117. Part9.CFrame = CFrame.new(68.9132614, 3.93998742, 130.053299, -0.0164914932, 0, 0.999864042, 0, 1, 0, -0.999864042, 0, -0.0164914932)
  118. Part9.BottomSurface = Enum.SurfaceType.Smooth
  119. Part9.TopSurface = Enum.SurfaceType.Smooth
  120. Part9.Color = Color3.new(0.94902, 0.952941, 0.952941)
  121. Part9.Position = Vector3.new(68.9132614, 3.93998742, 130.053299)
  122. Part9.Orientation = Vector3.new(0, 90.9399948, 0)
  123. Part9.Color = Color3.new(0.94902, 0.952941, 0.952941)
  124. Decal10.Parent = Part9
  125. Decal10.Texture = "http://www.roblox.com/asset/?id=342187051"
  126. Decal10.Face = Enum.NormalId.Left
  127. Tool11.Name = "LaserSpecs"
  128. Tool11.Parent = Part9
  129. Tool11.TextureId = "http://www.roblox.com/asset/?id=100449698"
  130. Tool11.GripForward = Vector3.new(-0, 1.31134158e-07, -1)
  131. Tool11.GripPos = Vector3.new(1.53999996, -1.27000034, -1.31999993)
  132. Tool11.GripUp = Vector3.new(0, 1, 1.31134158e-07)
  133. LocalScript12.Name = "SpotWeld_Main"
  134. LocalScript12.Parent = Tool11
  135. table.insert(cors,sandbox(LocalScript12,function()
  136. --local mDebugId = game.Workspace.DebugId.Value
  137. --game.Workspace.DebugId.Value = game.Workspace.DebugId.Value+1
  138. --print("Running swordscript <"..mDebugId..">")
  139.  
  140. -------------------------------------
  141. -- Makes an RBX::Lua Instance using
  142. -- a table of key-value pairs to
  143. -- initialize it. Values with numeric
  144. -- keys will be parented to the object
  145. -- and other values will be set
  146. -- as members of the object.
  147. function Create(ty)
  148. return function(data)
  149. local obj = Instance.new(ty)
  150. for k, v in pairs(data) do
  151. if type(k) == 'number' then
  152. v.Parent = obj
  153. else
  154. obj[k] = v
  155. end
  156. end
  157. return obj
  158. end
  159. end
  160.  
  161. ---------------------------------------
  162. -- Same as Make, but modifies an existing
  163. -- object rather than creating ones.
  164. function Modify(obj, data)
  165. for k, v in pairs(data) do
  166. if type(data) == 'number' then
  167. data.Parent = obj
  168. else
  169. data[k] = v
  170. end
  171. end
  172. return obj
  173. end
  174.  
  175. -----------------------------------------
  176. -- Creates a class which can be instantiated
  177. -- using `CreateCLASSNAME( ... )`.
  178. ---usage:
  179. --class'MyClass'(function(this, arg1)
  180. -- this.ClassMember = value
  181. -- function this.ClassMethod(...) ... end
  182. --end, function(def)
  183. -- def.StaticMember = value
  184. -- function def.StaticMethod(...) ... end
  185. --end)
  186. --local obj = CreateMyClass(arg1)
  187. ------------------------------------------
  188. local function class(name)
  189. local def = {}
  190. getfenv(0)[name] = def
  191. return function(ctor, static)
  192. local nctor = function(...)
  193. local this = {}
  194. if ctor then
  195. ctor(this, ...)
  196. end
  197. return this
  198. end
  199. getfenv(0)['Create'..name] = nctor
  200. if static then static(def) end
  201. end
  202. end
  203.  
  204.  
  205. ---------------------------------------------
  206. -- Signal class for custom-made events
  207. --API:
  208. -- Signal:connect(callback)
  209. -- Signal:fire(...)
  210. -- Signal:wait()
  211. ---------------------------------------------
  212. class'Signal'(function(this)
  213. local mListeners = {}
  214. local mWaitObject = Create'BoolValue'{}
  215.  
  216. function this:connect(func)
  217. local connection = {}
  218. function connection:disconnect()
  219. mListeners[func] = nil
  220. end
  221. mListeners[func] = connection
  222. return connection
  223. end
  224.  
  225. function this:fire(...)
  226. --print("Fire evt<"..tostring(this).."> from script<"..mDebugId..">")
  227. for func, conn in pairs(mListeners) do
  228. --print("-> "..tostring(func).."( ... )")
  229. func(...)
  230. end
  231. mWaitObject.Value = not mWaitObject.Value
  232. end
  233.  
  234. function this:wait()
  235. mWaitObject.Changed:wait()
  236. end
  237. end)
  238.  
  239.  
  240. --------------------------------------------------
  241. -- Bin class for cleaning up assets
  242. --API:
  243. -- Bin:add(func: Function, ident: String)
  244. -- Bin:clean(ident: String)
  245. -- Bin:cleanAll()
  246. --------------------------------------------------
  247. class'Bin'(function(this)
  248. local mGarbage = {}
  249.  
  250. function this:add(func, ident)
  251. ident = ident or '__unnamed'
  252. if not mGarbage[ident] then
  253. mGarbage[ident] = {}
  254. end
  255. mGarbage[ident][#mGarbage[ident]+1] = func
  256. end
  257.  
  258. function this:clean(ident)
  259. local listToCall = mGarbage[ident]
  260. if listToCall then
  261. for _, func in pairs(listToCall) do
  262. func()
  263. end
  264. mGarbage[ident] = nil
  265. end
  266. end
  267.  
  268. function this:cleanAll()
  269. for ident, list in pairs(mGarbage) do
  270. for _, func in pairs(list) do
  271. func()
  272. end
  273. mGarbage[ident] = nil
  274. end
  275. end
  276. end)
  277.  
  278.  
  279. -----------------------------------------------------
  280. -- AnimationProvider class for easy loading of
  281. -- animation assets into animationtracks once
  282. -- a humanoid is available.
  283. --API:
  284. -- AnimationProvider:registerAnimation(ident, assetid)
  285. -- AnimationProvider:setHumanoid(humanoid)
  286. -- AnimationProvider:setTool(tool)
  287. -- AnimationProvider:getAnimation(ident)
  288. -----------------------------------------------------
  289. class'AnimationProvider'(function(this)
  290. local mAnimations = {--[[ident => {AnimationId, CurrentTrack, CurrentAnim} ]]}
  291. local mCurrentHumanoid = nil
  292.  
  293. function this:registerAnimation(ident, assetid)
  294. --check for an existing copy of the anim
  295. local existingAnim = Tool.Tool:FindFirstChild('ANIM_'..ident)
  296.  
  297. --make the data for this anim
  298. local animdat = {
  299. AnimationId = assetid,
  300. CurrentAnim = existingAnim or Create'Animation'{
  301. Name = "ANIM_"..ident,
  302. AnimationId = assetid,
  303. },
  304. }
  305. mAnimations[ident] = animdat
  306.  
  307. --if there's a current tool, put it in there
  308. if Tool.Tool then
  309. Tool.HUGE_EQUIP_HACK = true
  310. animdat.CurrentAnim.Parent = Tool.Tool
  311. Tool.HUGE_EQUIP_HACK = false
  312. end
  313.  
  314. --if there's a humanoid load the animation track
  315. if mCurrentHumanoid then
  316. animdat.CurrentTrack = mCurrentHumanoid:LoadAnimation(animdat.CurrentAnim)
  317. end
  318. end
  319.  
  320. function this:setHumanoid(humanoid)
  321. mCurrentHumanoid = humanoid
  322. for _, anim in pairs(mAnimations) do
  323. anim.CurrentTrack = humanoid:LoadAnimation(anim.CurrentAnim)
  324. end
  325. end
  326.  
  327. function this:getAnimation(ident)
  328. local dat = mAnimations[ident]
  329. if not dat then error("Gear Fatal Error: Animation `"..ident.."` not found") end
  330. if not dat.CurrentTrack then
  331. error("Gear Fatal Error: No Humanoid for animation `"..ident.."` to run in")
  332. end
  333. return dat.CurrentTrack
  334. end
  335. end)
  336.  
  337.  
  338. ----------------------------------------------
  339. -- SoundProvider class
  340. -- functions similarily to the animationprovider
  341. ----------------------------------------------
  342. class'SoundProvider'(function(this)
  343. local mSounds = {}
  344.  
  345. function this:registerSound(ident, assetid, inpart)
  346. inpart = inpart or Tool.Tool:FindFirstChild('Handle')
  347. if not inpart then
  348. repeat
  349. inpart = Tool.Tool.ChildAdded:wait()
  350. until inpart.Name == 'Handle'
  351. end
  352. local existingSound = inpart:FindFirstChild('SOUND_'..ident)
  353. local sounddat = {
  354. SoundId = assetid,
  355. CurrentSound = existingSound or Create'Sound'{
  356. Name = 'SOUND_'..ident,
  357. SoundId = assetid,
  358. Parent = inpart,
  359. },
  360. }
  361. mSounds[ident] = sounddat
  362. end
  363.  
  364. function this:getSound(ident)
  365. local dat = mSounds[ident]
  366. if dat then
  367. return dat.CurrentSound
  368. end
  369. end
  370. end)
  371.  
  372.  
  373. ----------------------------------------------
  374. -- DebounceProvider class -- Prevent events
  375. -- from happening in too rapid succession
  376. ----------------------------------------------
  377. class'DebounceProvider'(function(this)
  378. local mFlagNameToLastTime = {}
  379.  
  380. function this:test(ident, delta)
  381. local t = tick()
  382. local lastTime = mFlagNameToLastTime[ident] or 0
  383. if delta then
  384. return (t-lastTime) > delta
  385. else
  386. return mFlagNameToLastTime[ident]
  387. end
  388. end
  389. function this:set(ident, state)
  390. if state then
  391. mFlagNameToLastTime[ident] = state
  392. elseif state == false then
  393. mFlagNameToLastTime[ident] = false
  394. else
  395. mFlagNameToLastTime[ident] = tick()
  396. end
  397. end
  398. end)
  399.  
  400.  
  401. function TagHumanoid(humanoid)
  402. if Tool.Player then
  403. local tag = Create'ObjectValue'{
  404. Name = "creator",
  405. Value = Tool.Player,
  406. Parent = humanoid,
  407. }
  408. game.Debris:AddItem(tag, 1)
  409. end
  410. end
  411.  
  412.  
  413. ------- wait for any event in a set of events to fire ------
  414. function WaitForAny(tb)
  415. local evt = tb
  416. local conn = {}
  417. local eventargs = nil
  418. local waitProxy = Create'BoolValue'{}
  419. for _, e in pairs(evt) do
  420. local c = e:connect(function(...)
  421. for _, c in pairs(conn) do
  422. c:disconnect()
  423. end
  424. eventargs = {...}
  425. waitProxy.Value = not waitProxy.Value
  426. end)
  427. conn[#conn+1] = c
  428. end
  429. --
  430. waitProxy.Changed:wait()
  431. --
  432. return unpack(eventargs)
  433. end
  434.  
  435.  
  436. ----------------------------------------------
  437.  
  438. local EmitterPart = nil
  439.  
  440. -- Tool singleton class
  441. --API:
  442. -- ...
  443. class'Tool'(nil, function(this)
  444. --need this here for the animationprovider to use
  445. this.HUGE_EQUIP_HACK = false
  446.  
  447. this.Bin = CreateBin()
  448. this.AnimationProvider = CreateAnimationProvider()
  449. this.DebounceProvider = CreateDebounceProvider()
  450. this.SoundProvider = CreateSoundProvider()
  451.  
  452. --general values
  453. this.Tool = script.Parent
  454. this.Player = nil
  455. this.Humanoid = nil
  456. this.Character = nil
  457.  
  458. --============ several flags for the gear
  459. --nothing
  460.  
  461. --some events
  462. this.Equipped = CreateSignal()
  463. this.Unequipped = CreateSignal()
  464. this.OwnerChange = CreateSignal()
  465.  
  466. --mouse utility events
  467. this.MouseClick = CreateSignal()
  468. this.MouseRelease = CreateSignal()
  469. this.MouseDoubleClick = CreateSignal()
  470. this.DoubleClickThreshold = 0.2
  471. this.MouseDown = false
  472. this.KeyDown = CreateSignal()
  473.  
  474. local mLastClickTime = 0
  475.  
  476. script.Parent.Equipped:connect(function(mouse)
  477. --print("Internal Equipped: Time b: "..time())
  478. --set up general values in the tool
  479. this.Mouse = mouse
  480. local curOwner = game.Players:GetPlayerFromCharacter(script.Parent.Parent)
  481. if curOwner ~= this.Player then
  482. this.Player = curOwner
  483. this.OwnerChange:fire(this.Player)
  484. end
  485. this.Character = this.Player.Character
  486. this.Humanoid = this.Character.Humanoid
  487. this.AnimationProvider:setHumanoid(this.Humanoid)
  488.  
  489. --set up the mouse events
  490. mouse.Button1Down:connect(function()
  491. this.MouseDown = true
  492. local t = tick()
  493. if (t-mLastClickTime) < this.DoubleClickThreshold then
  494. --prvent multiple double-clicks in a row
  495. mLastClickTime = 0
  496. this.MouseDoubleClick:fire(mouse)
  497. else
  498. mLastClickTime = t
  499. this.MouseClick:fire(mouse)
  500. end
  501. end)
  502. mouse.Button1Up:connect(function()
  503. this.MouseDown = false
  504. if EmitterPart then
  505. EmitterPart:Destroy()
  506. EmitterPart=nil
  507. end
  508. end)
  509. mouse.KeyDown:connect(function(key)
  510. this.KeyDown:fire(key)
  511. end)
  512.  
  513. --done setup, call the equipped function
  514. if this.HUGE_EQUIP_HACK then
  515. --the HUGE_EQUIP_HACK flags tells the tool that the equip is a synchronous
  516. --call as a result of parenting an animation to the character, which happens
  517. --when the tool is picked up from the workspace, but not during normal equips
  518. --(Why does this happen???), if this is the case, the call should be rederrred
  519. --one tick to ensure that all of the gear's loading can complete before it's
  520. --equipped event is called.
  521. --TODO: Blame John for this.
  522. Delay(0, function()
  523. this.Equipped:fire(mouse)
  524. end)
  525. else
  526. --otherwise, proceed as normal
  527. this.Equipped:fire(mouse)
  528. end
  529. end)
  530.  
  531. script.Parent.Unequipped:connect(function()
  532. --before my teardown, fire the event
  533. this.Unequipped:fire()
  534.  
  535. --delete all my garbage
  536. this.Bin:cleanAll()
  537. end)
  538. end)
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563. local BeamColor = BrickColor.new(Color3.new(255, 0, 0))
  564. local PartModel = Create'Model'{
  565. Name = 'SpotWeld_Parts',
  566. }
  567. local Failsafe = nil
  568.  
  569. Tool.AnimationProvider:registerAnimation('equip', 'http://www.roblox.com/asset/?id=69427262')
  570. Tool.AnimationProvider:registerAnimation('fire', 'http://www.roblox.com/asset/?id=69427271')
  571. Tool.AnimationProvider:registerAnimation('hold', 'http://www.roblox.com/asset/?id=69427277')
  572.  
  573. class'RaycastIgnore'(nil, function(def)
  574. local mIgnoreMap = setmetatable({}, {__mode='k'})
  575. function def:addIgnore(obj)
  576. mIgnoreMap[obj] = true
  577. end
  578. function def:genIgnoreList()
  579. local ignoreList = {}
  580. for p, _ in pairs(mIgnoreMap) do
  581. ignoreList[#ignoreList+1] = p
  582. for _,t in pairs(p:GetChildren()) do
  583. if t.Name == 'Effect' then
  584. ignoreList[#ignoreList+1] = t
  585. end
  586. end
  587. end
  588. for _, ch in pairs(Tool.Character:GetChildren()) do
  589. if ch:IsA('BasePart') then
  590. ignoreList[#ignoreList+1] = ch
  591. end
  592. for _, handle in pairs(ch:GetChildren()) do
  593. if handle:IsA('BasePart') then
  594. ignoreList[#ignoreList+1] = ch
  595. end
  596. end
  597. end
  598. return ignoreList
  599. end
  600. end)
  601.  
  602. class'SpotWeld_Charge'(function(this)
  603. this.Completed = CreateSignal()
  604. --
  605. local mReady = false
  606. local mSpokeList = {} --[i] = {Direction, Part, Len, Dist}
  607. local mChargeSphere = nil
  608. local mFracComplete = 0
  609. --
  610. local mLocation;
  611. --
  612. local mCurrentRun = 0
  613. --
  614. local function genSpokes()
  615. if mReady then return end
  616. mReady = true
  617.  
  618. --make charge sphere
  619. mChargeSphere = Create'Part'{
  620. Name = 'SpotWeld_ChrageSphere',
  621. FormFactor = 'Custom',
  622. Anchored = true,
  623. CanCollide = false,
  624. Transparency = 0.3,
  625. BrickColor = BeamColor,
  626. Create'SpecialMesh'{MeshType='Sphere',},
  627. }
  628. RaycastIgnore:addIgnore(mChargeSphere)
  629.  
  630. --make new spokes
  631. for i = 1, 20 do
  632. local spoke = {}
  633. spoke.Part = Create'Part'{
  634. Name = 'SpotWeld_Spoke',
  635. FormFactor = 'Custom',
  636. Anchored = true,
  637. CanCollide = false,
  638. Transparency = 0.3,
  639. BrickColor = BeamColor,
  640. }
  641. RaycastIgnore:addIgnore(spoke.Part)
  642. mSpokeList[i] = spoke
  643. end
  644. end
  645. local function randomizeSpokes()
  646. for _, spoke in pairs(mSpokeList) do
  647. spoke.Direction = CFrame.new(mLocation)*CFrame.Angles(math.random(-1.14, 1.14),
  648. math.random(-1.14, 1.14),
  649. math.random(-1.14, 1.14))
  650. spoke.Len = math.random()*1+1
  651. spoke.Dist = math.random()*1+1
  652. spoke.Part.Size = Vector3.new(0.1, 0.1, spoke.Len)
  653. end
  654. end
  655. local function showSpokes(state)
  656. if mReady then
  657. local par = ((state) and PartModel or nil)
  658. mChargeSphere.Parent = par
  659. for _, spoke in pairs(mSpokeList) do
  660. spoke.Part.Parent = par
  661. end
  662. end
  663. end
  664. local function setSpokes()
  665. local sphereSz = mFracComplete
  666. mChargeSphere.Size = Vector3.new(sphereSz, sphereSz, sphereSz)
  667. mChargeSphere.CFrame = CFrame.new(mLocation)
  668. --
  669. for _, spoke in pairs(mSpokeList) do
  670. local endDistOut = (1-mFracComplete)*spoke.Dist
  671. local innerDistOut = endDistOut-spoke.Len-sphereSz
  672. local gotLen;
  673. if innerDistOut < 0 then
  674. gotLen = spoke.Len+innerDistOut
  675. else
  676. gotLen = spoke.Len
  677. end
  678. spoke.Part.Size = Vector3.new(0.1, 0.1, spoke.Len+innerDistOut)
  679. spoke.Part.CFrame = spoke.Direction*CFrame.new(0, 0, -(endDistOut-gotLen/2))
  680. end
  681. end
  682. --
  683. function this:run(location)
  684. mLocation = location
  685. mCurrentRun = mCurrentRun+1
  686. local thisRun = mCurrentRun
  687. mFracComplete = 0
  688. --
  689. genSpokes()
  690. randomizeSpokes()
  691. showSpokes(true)
  692. --
  693. Spawn(function()
  694. local lastTime = tick()
  695. while mCurrentRun == thisRun and mFracComplete < 1 do
  696. local now = tick()
  697. local dt = now-lastTime
  698. lastTime = now
  699. --
  700. mFracComplete = math.min(1, mFracComplete+dt*2)
  701. setSpokes()
  702. --
  703. wait()
  704. end
  705. if mCurrentRun == thisRun then
  706. showSpokes(false)
  707. this.Completed:fire()
  708. end
  709. end)
  710. end
  711. function this:stop()
  712. showSpokes(false)
  713. mCurrentRun = mCurrentRun+1
  714. end
  715. --
  716. function this:destroy()
  717. mReady = false
  718. mChargeSphere:Destroy()
  719. for i, spoke in pairs(mSpokeList) do
  720. mSpokeList[i] = nil
  721. spoke.Part:Destroy()
  722. end
  723. end
  724. end)
  725.  
  726.  
  727.  
  728. --[[
  729. locations:
  730.  
  731. C
  732. /\
  733. / \
  734. A B
  735. locationGetFunc => A, B, C
  736. ]]
  737. local function frand(a, b)
  738. return a+math.random()*(b-a)
  739. end
  740. class'WavyBeam'(function(this, numSegs)
  741. local mSegList = {}
  742. for i = 1, numSegs do
  743. mSegList[i] = Create'Part'{
  744. Name = 'SpotWeld_BeamBit',
  745. Anchored = true,
  746. CanCollide = false,
  747. FormFactor = 'Custom',
  748. BrickColor = BeamColor,
  749. Transparency = 0.3,
  750. }
  751. RaycastIgnore:addIgnore(mSegList[i])
  752. end
  753. function this:show(from, to)
  754. local totalLen = (from-to).magnitude
  755. local wave = math.min(totalLen/5, 1)/2
  756. local dirCF = CFrame.new(from, to)
  757. local lastPos = dirCF.p --(dirCF*CFrame.new(frand(-wave, wave), frand(-wave, wave), 0)).p
  758. for i = 1, numSegs do
  759. local p = mSegList[i]
  760. p.Parent = PartModel
  761. local distToThisEnd = i*(totalLen/numSegs)
  762. local newPos;
  763. if i == numSegs then
  764. newPos = (dirCF*CFrame.new(0,0,-distToThisEnd)).p
  765. else
  766. newPos = (dirCF*CFrame.new(frand(-wave, wave),
  767. frand(-wave, wave),
  768. -distToThisEnd)).p
  769. end
  770. p.Size = Vector3.new(0.1, 0.1, totalLen/numSegs)
  771. p.CFrame = CFrame.new(lastPos, newPos)*CFrame.new(0, 0, -(lastPos-newPos).magnitude/2)
  772. lastPos = newPos
  773. end
  774. end
  775. function this:hide()
  776. for i = 1, numSegs do
  777. mSegList[i].Parent = nil
  778. end
  779. end
  780. end)
  781. class'SpotWeld_Beam'(function(this)
  782.  
  783.  
  784. local mParticleEmitter = Create'Part'{
  785. Name = 'SpotWeld_ParticleEmitter',
  786. Anchored = true,
  787. CanCollide = false,
  788. Transparency = 1,
  789. Create'Sound'{
  790. Name = 'HoldSound1',
  791. Looped = true,
  792. SoundId = 'http://www.roblox.com/asset/?id=100429993',
  793. Volume=1
  794. },
  795. Create'Sound'{
  796. Name = 'HoldSound2',
  797. Looped = true,
  798. SoundId = 'http://www.roblox.com/asset/?id=100429993',
  799. Volume=1
  800. },
  801. }
  802. RaycastIgnore:addIgnore(mParticleEmitter)
  803. local mBeam_AC = CreateWavyBeam(2)
  804. local mBeam_BC = CreateWavyBeam(2)
  805. --
  806. local mIsShown = false
  807. function this:show(a, b, c, showBeam)
  808. if not a then
  809. this:hide()
  810. return
  811. end
  812.  
  813. --
  814. mBeam_AC:show(a, c)
  815. mBeam_BC:show(b, c)
  816. --
  817.  
  818. --
  819. if showBeam then
  820. --
  821. mParticleEmitter.Parent = PartModel
  822. mParticleEmitter.CFrame = CFrame.new(c)
  823. --
  824. if not mIsShown then
  825. mParticleEmitter.HoldSound1:Play()
  826. Delay(0.5, function() mParticleEmitter.HoldSound2:Play() end)
  827. end
  828. mIsShown = true
  829. else
  830. if EmitterPart then
  831. EmitterPart:Destroy()
  832. EmitterPart=nil
  833. end
  834. mParticleEmitter.Parent = nil
  835. mIsShown = false
  836. end
  837. --
  838. end
  839. function this:hide()
  840. mIsShown = false
  841. --
  842. mBeam_AC:hide()
  843. mBeam_BC:hide()
  844. --
  845. mParticleEmitter.Parent = nil
  846. end
  847. end)
  848.  
  849. --effects
  850. local ChargeEffect = CreateSpotWeld_Charge()
  851. local BeamEffect = CreateSpotWeld_Beam()
  852.  
  853. --helper to show the beam
  854. function showBeamEffect(target, showBeam)
  855. local ch = Tool.Character
  856. local head = ch:FindFirstChild("Head")
  857. if not (head) then
  858. BeamEffect:hide()
  859. end
  860. --
  861. local ray = CFrame.new(head.Position, target)*CFrame.new(0, 2, -1)
  862. local a = (head.CFrame*CFrame.new(-.25, 0, 0)).p
  863. local b = (head.CFrame*CFrame.new(.25, 0, 0)).p
  864. local c = target
  865. --
  866. --local b = (head.CFrame*CFrame.new(-0.3, 0.15, -0.6)).p
  867. BeamEffect:show(a, b, c, showBeam)
  868. end
  869.  
  870.  
  871. function findFaceFromCoord(size, loc)
  872. local pa, pb = -size/2, size/2
  873. local dx = math.min(math.abs(loc.x-pa.x), math.abs(loc.x-pb.x))
  874. local dy = math.min(math.abs(loc.y-pa.y), math.abs(loc.y-pb.y))
  875. local dz = math.min(math.abs(loc.z-pa.z), math.abs(loc.z-pb.z))
  876. --
  877. if dx < dy and dx < dz then
  878. if math.abs(loc.x-pa.x) < math.abs(loc.x-pb.x) then
  879. return Enum.NormalId.Left --'Left'
  880. else
  881. return Enum.NormalId.Right --'Right'
  882. end
  883. elseif dy < dx and dy < dz then
  884. if math.abs(loc.y-pa.y) < math.abs(loc.y-pb.y) then
  885. return Enum.NormalId.Bottom --'Bottom'
  886. else
  887. return Enum.NormalId.Top --'Top'
  888. end
  889. elseif dz < dx and dz < dy then
  890. if math.abs(loc.z-pa.z) < math.abs(loc.z-pb.z) then
  891. return Enum.NormalId.Front --'Front'
  892. else
  893. return Enum.NormalId.Back --'Back'
  894. end
  895. end
  896. end
  897.  
  898.  
  899.  
  900. function createFire(part, hit)
  901. if (part.Parent or game):FindFirstChild("Humanoid") or
  902. ((part.Parent or game).Parent or game):FindFirstChild("Humanoid") then
  903. return
  904. end
  905. if not EmitterPart then
  906. EmitterPart = Create'Part'{
  907. Name = 'EmitPart',
  908. FormFactor = 'Custom',
  909. CanCollide = false,
  910. Anchored = true,
  911. Size = Vector3.new(.2, .2, .2),
  912. Transparency = 1,
  913. Parent = script.Parent,
  914. }
  915. RaycastIgnore:addIgnore(EmitterPart)
  916. local emitScript = script:FindFirstChild('Emitter'):Clone()
  917. emitScript.Parent=EmitterPart
  918. emitScript.Disabled = false
  919. end
  920.  
  921.  
  922. local hitFace = findFaceFromCoord(part.Size, part.CFrame:toObjectSpace(CFrame.new(hit)))
  923. local dir = (part.CFrame-part.Position)*Vector3.FromNormalId(hitFace)
  924. if part:IsA('Terrain') then
  925. EmitterPart.CFrame = CFrame.new(hit)
  926. else
  927. EmitterPart.CFrame = CFrame.new(hit, hit+dir)*CFrame.Angles(-math.pi/2, 0, 0)
  928. end
  929. game.Debris:AddItem(scorch, 5)
  930. end
  931.  
  932.  
  933. local mClickNum = 0
  934. local mSelected = false
  935. Tool.MouseClick:connect(function()
  936. mClickNum = mClickNum+1
  937. local thisClick = mClickNum
  938. if not Tool.Mouse.Target or not Tool.Character:FindFirstChild("Head") then
  939. return
  940. end
  941. --
  942. Tool.AnimationProvider:getAnimation('fire'):Play(0, 1, 4)
  943. Spawn(function()
  944. repeat until Tool.AnimationProvider:getAnimation('fire').KeyframeReached:wait() == 'complete'
  945. Tool.AnimationProvider:getAnimation('hold'):Play(0, 1, 1)
  946. end)
  947. --
  948. Tool.Humanoid.WalkSpeed = 0
  949. --
  950. local headPos = Tool.Character.Head.Position
  951. local hit = Tool.Mouse.Hit.p
  952. ChargeEffect:run((CFrame.new(headPos, hit)*CFrame.new(0, 2, -3)).p)
  953. ChargeEffect.Completed:wait()
  954. ChargeEffect:stop()
  955. --
  956. local isDamageTick = false
  957. local timeOfLastScorch = tick()
  958. local partsToIgnore = RaycastIgnore:genIgnoreList()
  959. local headPart = Tool.Character:FindFirstChild("Head")
  960. while mSelected and Tool.MouseDown and mClickNum == thisClick and headPart do
  961. --first, find the true mouse hit, ignoring my ray parts
  962. local mouseRay = Tool.Mouse.UnitRay
  963. local newRay = Ray.new(mouseRay.Origin, mouseRay.Direction.unit*999.9)
  964. local _, hit = game.Workspace:FindPartOnRayWithIgnoreList(newRay, partsToIgnore)
  965.  
  966. --found true hit, now go on to raycast to there from firefrom point
  967. local headPos = Tool.Character.Head.Position
  968. local fireFrom = (CFrame.new(headPos, hit)*CFrame.new(0, 2, -1)).p
  969. local castRay = Ray.new(fireFrom, (hit-fireFrom).unit*999.9)
  970. local part, target = game.Workspace:FindPartOnRayWithIgnoreList(castRay, partsToIgnore)
  971.  
  972. local charHeading = Tool.Character.Torso.CFrame.lookVector
  973. local outOfFOV = (math.acos((target-fireFrom).unit:Dot(charHeading)) > 1.5)
  974. if not target or outOfFOV then
  975. --just shoot arbitrarily ahead
  976. showBeamEffect((Tool.Character.Head.CFrame*CFrame.new(0, 0, -10)).p, false)
  977.  
  978. elseif (target-fireFrom).magnitude > 50 then
  979. --too far away
  980. target = fireFrom+(target-fireFrom).unit*50
  981. showBeamEffect(target, false)
  982.  
  983. else
  984. --mechanism to do more damage every other tick
  985. isDamageTick = not isDamageTick
  986. if isDamageTick then
  987. --see if the target exists and is a humanoid
  988. local hum = (part.Parent or game):FindFirstChild("Humanoid")
  989. hum = hum or ((part.Parent or game).Parent or game):FindFirstChild("Humanoid")
  990. if hum then
  991. --found a humanoid, do damage
  992. TagHumanoid(hum)
  993. hum:TakeDamage(4)
  994. end
  995. end
  996.  
  997. --make scorch effects
  998. if (tick()-timeOfLastScorch) > 0.1 then
  999. timeOfLastScorch = tick()
  1000. createFire(part, target)
  1001. end
  1002.  
  1003. --show the beam
  1004. showBeamEffect(target, true)
  1005. end
  1006. wait()
  1007. end
  1008. if mClickNum == thisClick then
  1009. BeamEffect:hide()
  1010. Tool.Humanoid.WalkSpeed = 16
  1011. Tool.AnimationProvider:getAnimation('hold'):Stop()
  1012. end
  1013. end)
  1014.  
  1015. local mHatPart = nil
  1016. Tool.Equipped:connect(function()
  1017. mSelected = true
  1018. PartModel.Parent = game.Workspace
  1019. Failsafe = Tool.Tool.Failsafe:Clone()
  1020. Failsafe.Disabled = false
  1021. Failsafe.Model.Value = PartModel
  1022. Failsafe.Humanoid.Value = Tool.Humanoid
  1023. Failsafe.Parent = PartModel
  1024. --
  1025. Tool.AnimationProvider:getAnimation('equip'):Play(0.1, 1, 4)
  1026. --Tool.Tool.Grip = CFrame.new()
  1027. Tool.Tool.Handle.Transparency = 1
  1028. --
  1029. Spawn(function()
  1030. --this code causes re-firing of the equipped event fpor some reason?
  1031. --putting it in a new thread fixes this behavior
  1032. mHatPart = Tool.Tool.Handle:Clone()
  1033. mHatPart.Transparency = 0
  1034. mHatPart.Parent = Tool.Character
  1035. local w = Create'Weld'{
  1036. Parent = mHatPart,
  1037. Part0 = mHatPart,
  1038. Part1 = Tool.Character:FindFirstChild('Head'),
  1039. C0 = CFrame.new(0.040000014, 0, 0.0199999996, 1, 0, 0, 0, 1.31134158e-007, 1, 0, -1, 1.31134158e-007),
  1040. C1 = CFrame.new(0, 0.200000003, -0.100000001, 1, 0, 0, 0, -4.37113883e-008, 1, 0, -1, -4.37113883e-008)
  1041. }
  1042. end)
  1043. end)
  1044.  
  1045. Tool.Unequipped:connect(function()
  1046. mSelected = false
  1047. PartModel.Parent = nil
  1048. Failsafe:Destroy()
  1049. Failsafe = nil
  1050.  
  1051. if EmitterPart then
  1052. EmitterPart:Destroy()
  1053. EmitterPart=nil
  1054. end
  1055. --
  1056. Tool.AnimationProvider:getAnimation('equip'):Stop()
  1057. Tool.AnimationProvider:getAnimation('fire'):Stop()
  1058. Tool.AnimationProvider:getAnimation('hold'):Stop()
  1059. --kill any running effects
  1060. ChargeEffect:stop()
  1061. BeamEffect:hide()
  1062. --
  1063. Tool.Humanoid.WalkSpeed = 16
  1064. --Tool.Handle.Transparency = 0
  1065. --
  1066. if mHatPart then
  1067. mHatPart:Destroy()
  1068. mHatPart = nil
  1069. end
  1070. end)
  1071.  
  1072. end))
  1073. Script13.Name = "Emitter"
  1074. Script13.Parent = LocalScript12
  1075. Script13.Disabled = true
  1076. table.insert(cors,sandbox(Script13,function()
  1077. local Particle = Instance.new('Part')
  1078. Particle.Name = 'Effect'
  1079. Particle.Size = Vector3.new(.2,.2,.2)
  1080. Particle.CanCollide = false
  1081. Particle.Transparency = 1
  1082. local PartMesh = Instance.new('SpecialMesh')
  1083. PartMesh.Name = 'PartMesh'
  1084. PartMesh.MeshId = 'http://www.roblox.com/asset/?id=87112830'--'http://www.roblox.com/asset/?id=96501868'--
  1085. PartMesh.TextureId = 'http://www.roblox.com/asset/?id=99871304'
  1086. PartMesh.Parent=Particle
  1087. local PartVelocity = Instance.new('BodyVelocity')
  1088. PartVelocity.maxForce = Vector3.new(99999999,99999999,999999)
  1089. PartVelocity.velocity= Vector3.new(0,1,0)
  1090. PartVelocity.Parent=Particle
  1091. local PartSpin = Instance.new('BodyAngularVelocity')
  1092. PartSpin.maxTorque = Vector3.new(999999999,99999999,999999)
  1093. PartSpin.angularvelocity =Vector3.new(1,1,1)
  1094. PartSpin.Parent=Particle
  1095.  
  1096. local Lifetime = 2
  1097. local Rate =.1
  1098.  
  1099. function TweenTransparency(element,starta,enda,length)
  1100. local startTime = time()
  1101. while time() - startTime < length do
  1102. element.Transparency = ((enda - starta) * ((time() - startTime)/length)) + starta
  1103. wait(.01)
  1104. end
  1105. element.Transparency = enda
  1106. end
  1107.  
  1108. function TweenScale(element,starts,ends,length)
  1109. local startTime = time()
  1110. while time() - startTime < length do
  1111. element.Scale = ((ends - starts) * ((time() - startTime)/length)) + starts
  1112. wait(.01)
  1113. end
  1114. element.Scale = ends
  1115. end
  1116.  
  1117. function TweenColor(element,startc,endc,length)
  1118. local startTime = time()
  1119. while time() - startTime < length do
  1120. element.VertexColor = ((endc - startc) * ((time() - startTime)/length)) + startc
  1121. wait(.01)
  1122. end
  1123. element.VertexColor = endc
  1124. end
  1125.  
  1126. while true do
  1127. PartVelocity.velocity= Vector3.new((math.random()-.5)/2,math.random()+3,(math.random()-.5)/2)
  1128. PartMesh.Scale= Vector3.new((math.random()/2)+.2,math.random()/2+.2,math.random()/2+.2)
  1129. PartSpin.angularvelocity =Vector3.new(math.random()*3,math.random()*3,math.random()*3)
  1130. Particle.CFrame= script.Parent.CFrame
  1131. local npart= Particle:Clone()
  1132. local nmesh = npart:FindFirstChild('PartMesh')
  1133. npart.Transparency = 1
  1134. npart.Parent=script.Parent
  1135.  
  1136. Spawn(function()
  1137. TweenTransparency(npart, 1,.5,.1)
  1138. TweenTransparency(npart, .5,1,1.5)
  1139. end)
  1140. --Spawn(function()
  1141. --TweenColor(nmesh, Vector3.new(.8+(math.random()*.4),1,1),Vector3.new(.5,.5,.5),1.5)
  1142. --end)
  1143. Spawn(function() TweenScale(nmesh,nmesh.Scale,nmesh.Scale*math.random()*.5,1.5) end)
  1144. game.Debris:AddItem(npart,Lifetime)
  1145. wait(Rate)
  1146.  
  1147. end
  1148. end))
  1149. Part14.Name = "Handle"
  1150. Part14.Parent = Tool11
  1151. Part14.FormFactor = Enum.FormFactor.Symmetric
  1152. Part14.Shape = Enum.PartType.Ball
  1153. Part14.Size = Vector3.new(1, 1, 1)
  1154. Part14.CFrame = CFrame.new(80.6800003, -18.3137741, 174.050003, 1, -2.21533113e-17, 9.25474816e-17, 2.21533113e-17, 1, -3.76204621e-17, -9.25474816e-17, 3.76204621e-17, 1)
  1155. Part14.BottomSurface = Enum.SurfaceType.Smooth
  1156. Part14.TopSurface = Enum.SurfaceType.Smooth
  1157. Part14.Position = Vector3.new(80.6800003, -18.3137741, 174.050003)
  1158. SpecialMesh15.Parent = Part14
  1159. SpecialMesh15.MeshId = "http://www.roblox.com/asset/?id=1185246"
  1160. SpecialMesh15.Scale = Vector3.new(4, 4, 4)
  1161. SpecialMesh15.TextureId = "http://www.roblox.com/asset/?id=5013397"
  1162. SpecialMesh15.MeshType = Enum.MeshType.FileMesh
  1163. SpecialMesh15.Scale = Vector3.new(4, 4, 4)
  1164. Script16.Name = "Failsafe"
  1165. Script16.Parent = Tool11
  1166. Script16.Disabled = true
  1167. table.insert(cors,sandbox(Script16,function()
  1168. while not script:FindFirstChild("Humanoid") do
  1169. script.ChildAdded:wait()
  1170. end
  1171. script.Humanoid.Value.Died:connect(function()
  1172. script.Model.Value:Destroy()
  1173. end)
  1174. end))
  1175. ObjectValue17.Name = "Model"
  1176. ObjectValue17.Parent = Script16
  1177. ObjectValue18.Name = "Humanoid"
  1178. ObjectValue18.Parent = Script16
  1179. Tool19.Name = "Leek"
  1180. Tool19.Parent = Part9
  1181. Tool19.GripForward = Vector3.new(-0, -0, 1)
  1182. Tool19.GripRight = Vector3.new(-1, 0, 0)
  1183. Tool19.ToolTip = "Equip to start the party!"
  1184. Tool19.CanBeDropped = false
  1185. LocalScript20.Name = "LeekScript"
  1186. LocalScript20.Parent = Tool19
  1187. table.insert(cors,sandbox(LocalScript20,function()
  1188. local originalface=nil
  1189. local user=nil
  1190.  
  1191. Spawn(function()
  1192. local prev
  1193. local parts = script.Parent:GetChildren()
  1194. for i = 1,#parts do
  1195. if (parts[i].className == "Part") then
  1196. if (prev ~= nil)then
  1197. local weld = Instance.new("Weld")
  1198. weld.Part0 = prev
  1199. weld.Part1 = parts[i]
  1200. weld.C0 = prev.CFrame:inverse()
  1201. weld.C1 = parts[i].CFrame:inverse()
  1202. weld.Parent = prev
  1203. end
  1204. prev = parts[i]
  1205. prev.Anchored = false
  1206. end
  1207. end
  1208. end)
  1209.  
  1210. function onEquipped(mouse)
  1211. print'start spin'
  1212. down=true
  1213. script.Parent.Handle.LeekSpin:Play()
  1214. user=script.Parent.Parent
  1215. originalface=script.Parent.Parent:WaitForChild("Head").face.Texture
  1216. script.Parent.Parent:WaitForChild("Head").face.Texture="http://www.roblox.com/asset/?id=141452377"
  1217. while down do
  1218. script.Parent.Grip=script.Parent.Grip*CFrame.Angles(0,0,0.2)
  1219. wait()
  1220. end
  1221. end
  1222.  
  1223. function onUnequipped(mouse)
  1224. down=false
  1225. user:WaitForChild("Head").face.Texture=originalface
  1226. script.Parent.Handle.LeekSpin:Stop()
  1227. print'stop spin'
  1228. end
  1229.  
  1230. script.Parent.Equipped:connect(onEquipped)
  1231. script.Parent.Unequipped:connect(onUnequipped)
  1232. end))
  1233. Part21.Parent = Tool19
  1234. Part21.BrickColor = BrickColor.new("Camo")
  1235. Part21.Rotation = Vector3.new(-165, 0, 180)
  1236. Part21.CanCollide = false
  1237. Part21.FormFactor = Enum.FormFactor.Custom
  1238. Part21.Size = Vector3.new(0.200000003, 1, 0.400000006)
  1239. Part21.CFrame = CFrame.new(13.2999926, 1.94176316, 13.0068178, -0.999999106, -1.96739265e-07, 1.70943835e-07, 5.28843771e-07, 0.965925574, 0.258818656, -8.13116685e-09, 0.258818835, -0.965924859)
  1240. Part21.TopSurface = Enum.SurfaceType.Smooth
  1241. Part21.Color = Color3.new(0.227451, 0.490196, 0.0823529)
  1242. Part21.Position = Vector3.new(13.2999926, 1.94176316, 13.0068178)
  1243. Part21.Orientation = Vector3.new(-15, 180, 0)
  1244. Part21.Color = Color3.new(0.227451, 0.490196, 0.0823529)
  1245. BlockMesh22.Parent = Part21
  1246. BlockMesh22.Scale = Vector3.new(0.5, 1, 0.5)
  1247. BlockMesh22.Scale = Vector3.new(0.5, 1, 0.5)
  1248. Part23.Parent = Tool19
  1249. Part23.BrickColor = BrickColor.new("Camo")
  1250. Part23.Rotation = Vector3.new(165, 0, 180)
  1251. Part23.CanCollide = false
  1252. Part23.FormFactor = Enum.FormFactor.Custom
  1253. Part23.Size = Vector3.new(0.200000003, 1, 0.400000006)
  1254. Part23.CFrame = CFrame.new(13.2999935, 1.94176269, 12.7931881, -0.999999046, -1.89076246e-07, -5.81593014e-08, 4.43757216e-07, 0.965925574, -0.258818597, -3.04669925e-08, -0.258818746, -0.965924978)
  1255. Part23.TopSurface = Enum.SurfaceType.Smooth
  1256. Part23.Color = Color3.new(0.227451, 0.490196, 0.0823529)
  1257. Part23.Position = Vector3.new(13.2999935, 1.94176269, 12.7931881)
  1258. Part23.Orientation = Vector3.new(15, -180, 0)
  1259. Part23.Color = Color3.new(0.227451, 0.490196, 0.0823529)
  1260. BlockMesh24.Parent = Part23
  1261. BlockMesh24.Scale = Vector3.new(0.5, 1, 0.5)
  1262. BlockMesh24.Scale = Vector3.new(0.5, 1, 0.5)
  1263. Part25.Name = "Handle"
  1264. Part25.Parent = Tool19
  1265. Part25.BrickColor = BrickColor.new("Institutional white")
  1266. Part25.Rotation = Vector3.new(69.9700012, 89.9300003, -12.4399996)
  1267. Part25.RotVelocity = Vector3.new(1, 1, 1)
  1268. Part25.CanCollide = false
  1269. Part25.FormFactor = Enum.FormFactor.Custom
  1270. Part25.Size = Vector3.new(0.200000003, 1.79999995, 0.200000003)
  1271. Part25.CFrame = CFrame.new(13.2999935, 0.889999628, 12.9000025, 6.36468656e-08, 1.40425129e-08, 0.999999285, 3.72529279e-08, 0.999999523, -6.17590786e-07, -0.999999285, -1.26659813e-07, 2.25185218e-07)
  1272. Part25.TopSurface = Enum.SurfaceType.Smooth
  1273. Part25.Color = Color3.new(0.972549, 0.972549, 0.972549)
  1274. Part25.Position = Vector3.new(13.2999935, 0.889999628, 12.9000025)
  1275. Part25.Orientation = Vector3.new(0, 90, 0)
  1276. Part25.Color = Color3.new(0.972549, 0.972549, 0.972549)
  1277. SpecialMesh26.Parent = Part25
  1278. Sound27.Name = "LeekSpin"
  1279. Sound27.Parent = Part25
  1280. Sound27.SoundId = "http://www.roblox.com/asset/?id=142761485"
  1281. Sound27.Volume = 0.69999998807907
  1282. Sound27.Looped = true
  1283. Script28.Parent = Model0
  1284. table.insert(cors,sandbox(Script28,function()
  1285.  
  1286. local button = script.Parent.Button
  1287. local tool = button:GetChildren()[1]
  1288.  
  1289. button.Touched:connect(function(hit)
  1290. if (hit.Parent == nil) then
  1291. return
  1292. end
  1293. local player = game.Players:GetPlayerFromCharacter(hit.Parent)
  1294. if (player ~= nil) then
  1295. local t = player.Backpack:FindFirstChild(tool.Name)
  1296. if (t == nil) then
  1297. local newTool = tool:clone()
  1298. newTool.Parent = player.Backpack
  1299. end
  1300. end
  1301. end)
  1302.  
  1303. end))
  1304. Part29.Parent = Model0
  1305. Part29.BrickColor = BrickColor.new("Really red")
  1306. Part29.Rotation = Vector3.new(-180, -89.9599991, -180)
  1307. Part29.Anchored = true
  1308. Part29.Size = Vector3.new(4, 7.44999981, 2)
  1309. Part29.CFrame = CFrame.new(66.8856888, 3.7250123, 127.56929, -0.000796860317, 0, -0.999999762, 0, 1, 0, 0.999999762, 0, -0.000796860317)
  1310. Part29.Color = Color3.new(1, 0, 0)
  1311. Part29.Position = Vector3.new(66.8856888, 3.7250123, 127.56929)
  1312. Part29.Orientation = Vector3.new(0, -90.0499954, 0)
  1313. Part29.Color = Color3.new(1, 0, 0)
  1314. Decal30.Parent = Part29
  1315. Decal30.Texture = "http://www.roblox.com/asset/?id=52658396"
  1316. Decal30.Face = Enum.NormalId.Back
  1317. Script31.Name = "READ ME"
  1318. Script31.Parent = Model0
  1319. table.insert(cors,sandbox(Script31,function()
  1320. Made by DyII0n
  1321.  
  1322. If you are to use this in your game, give me credit.
  1323.  
  1324. THIS IS THE ORIGINAL DO NOT COPY
  1325. end))
  1326. for i,v in pairs(mas:GetChildren()) do
  1327. v.Parent = workspace
  1328. pcall(function() v:MakeJoints() end)
  1329. end
  1330. mas:Destroy()
  1331. for i,v in pairs(cors) do
  1332. spawn(function()
  1333. pcall(v)
  1334. end)
  1335. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement