SHOW:
|
|
- or go back to the newest paste.
| 1 | local ply = game.Players.LocalPlayer | |
| 2 | char = ply.Character | |
| 3 | torso = char.Torso | |
| 4 | head = char.Head | |
| 5 | holding = false | |
| 6 | RS = game:service'RunService' | |
| 7 | larm,rarm = char['Left Arm'],char['Right Arm'] | |
| 8 | Debris = game:service'Debris' | |
| 9 | floatforce = 196.25 | |
| 10 | attacking = false | |
| 11 | lh,rh = torso['Left Hip'],torso['Right Hip'] | |
| 12 | curcam = Workspace.CurrentCamera | |
| 13 | mouse = ply:GetMouse() | |
| 14 | FFS = function(A,B) return A:FindFirstChild(B) end ---- FindFirstChild Shortcut | |
| 15 | function genNew(ClassName, Parent, Properties) | |
| 16 | local nObj = Instance.new(ClassName, Parent) | |
| 17 | if Properties["FormFactor"] then | |
| 18 | nObj["FormFactor"] = Properties["FormFactor"] | |
| 19 | end | |
| 20 | for Prop, Value in pairs(Properties) do | |
| 21 | nObj[Prop] = Value | |
| 22 | end | |
| 23 | return nObj | |
| 24 | end | |
| 25 | pcall(function() char.Sole:Destroy() end) --- Destroys Physical Tool | |
| 26 | Weapon = Instance.new("Model",char) Weapon.Name = 'Sole'
| |
| 27 | cfn,ang,md,mr = CFrame.new,CFrame.Angles,math.rad,math.random --- Some Shortcuts | |
| 28 | udim = function(a,b) | |
| 29 | if type(a) ~= 'string' then | |
| 30 | return UDim2.new(a,0,b,0) | |
| 31 | else | |
| 32 | local x,y = a:match('(%.*%d+)%,(%.*%d+)')
| |
| 33 | return UDim2.new(x,0,y,0) | |
| 34 | end | |
| 35 | end | |
| 36 | for i,v in pairs(head:children()) do | |
| 37 | if v.Name == 'MugSound' then v:Destroy() end | |
| 38 | end | |
| 39 | Name = 'Seokinji' | |
| 40 | pcall(function() ply.Backpack[Name]:Destroy() end) --- Destroys Tool | |
| 41 | hop = Instance.new('HopperBin',ply.Backpack)
| |
| 42 | hop.Name = Name | |
| 43 | rw,lw = _,_ | |
| 44 | Col3 = function(r,g,b) return Color3.new(r/255,g/255,b/255) end | |
| 45 | udim = function(x,y) return UDim2.new(x,0,y,0) end | |
| 46 | bcol = BrickColor.new | |
| 47 | ---TOOLS--- | |
| 48 | Add ={ --- Array for handy functions
| |
| 49 | BG = function(parent) | |
| 50 | local bg = Instance.new("BodyGyro",parent)
| |
| 51 | bg.P = 20e+003 | |
| 52 | bg.maxTorque = Vector3.new(4e+005,4e+005,4e+005)*math.huge | |
| 53 | return bg | |
| 54 | end; | |
| 55 | BP = function(parent,position) | |
| 56 | local bp = Instance.new("BodyPosition",parent)
| |
| 57 | bp.maxForce = Vector3.new()*math.huge | |
| 58 | bp.position = position or parent.Position | |
| 59 | return bp | |
| 60 | end; | |
| 61 | BV = function(parent,force) | |
| 62 | local bv = Instance.new("BodyVelocity",parent)
| |
| 63 | bv.maxForce = Vector3.new()*math.huge | |
| 64 | bv.velocity = force or Vector3.new(0,0,0) | |
| 65 | return bv | |
| 66 | end; | |
| 67 | Sound = function(id,pitch,parent) | |
| 68 | local tab = {}
| |
| 69 | local snd = Instance.new("Sound",char.Head)
| |
| 70 | snd.Name = 'MugSound' | |
| 71 | snd.SoundId = id | |
| 72 | snd.Pitch = pitch or 1 | |
| 73 | tab.Sound = snd | |
| 74 | function tab:Play() | |
| 75 | self.Sound:Play() | |
| 76 | end | |
| 77 | function tab:Stop() | |
| 78 | self.Sound:Stop() | |
| 79 | end | |
| 80 | function tab:Pitch(a) | |
| 81 | self.Sound.Pitch = a | |
| 82 | end | |
| 83 | setmetatable(tab,{
| |
| 84 | __call = function(t,param) local cl = t.Sound:Clone() cl.Parent = param return cl end; | |
| 85 | }) | |
| 86 | return tab | |
| 87 | end; | |
| 88 | Fire = function(parent,size,heat,color,color2) | |
| 89 | local f = Instance.new("Fire",parent)
| |
| 90 | f.Size = size | |
| 91 | f.Heat = heat | |
| 92 | f.Color = BrickColor.new(color).Color | |
| 93 | if color2 then | |
| 94 | f.SecondaryColor = BrickColor.new(color2).Color | |
| 95 | end | |
| 96 | return f | |
| 97 | end; | |
| 98 | } | |
| 99 | function l(a,x,y,z,xx,yy,zz) | |
| 100 | if string.find(tostring(a),',') == _ then | |
| 101 | return (a.CFrame * cfn(x,y,z))*ang(xx or 0,yy or 0,zz or 0) | |
| 102 | else | |
| 103 | return (a * cfn(x,y,z))*ang(xx or 0,yy or 0,zz or 0) | |
| 104 | end | |
| 105 | end | |
| 106 | Cur_Parent = _ | |
| 107 | Part = function(x,y,z,color,tr,cc,an,parent) | |
| 108 | local p = Instance.new('Part',parent or Cur_Parent or Weapon)
| |
| 109 | p.formFactor = 'Custom' | |
| 110 | p.Locked = true | |
| 111 | p.Size = Vector3.new(x,y,z) | |
| 112 | - | p.BrickColor = BrickColor.new(color or 'White') |
| 112 | + | p.BrickColor = BrickColor.new(color or 'Black') |
| 113 | p.CanCollide = cc or false | |
| 114 | p.Anchored = an or false | |
| 115 | p.Transparency = tr or 0 | |
| 116 | p.TopSurface,p.BottomSurface = 0,0 | |
| 117 | return p | |
| 118 | end | |
| 119 | Wedge = function(x,y,z,color,tr,cc,an,parent) | |
| 120 | local p = Instance.new('WedgePart',parent or Weapon)
| |
| 121 | p.formFactor = 'Custom' | |
| 122 | p.Size = Vector3.new(x,y,z) | |
| 123 | - | p.BrickColor = BrickColor.new(color or 'White') |
| 123 | + | p.BrickColor = BrickColor.new(color or 'Black') |
| 124 | p.CanCollide = cc or false | |
| 125 | p.Anchored = an or false | |
| 126 | p.Transparency = tr or 0 | |
| 127 | p.TopSurface,p.BottomSurface = 0,0 | |
| 128 | return p | |
| 129 | end | |
| 130 | Meshes = {Diamond = 'rbxassetid://9756362'; Spikeball = 'rbxassetid://9982590'; Table = 'rbxassetid://111868131'; --- MeshIds
| |
| 131 | Egg = 'rbxassetid://1527559'; Ring = 'rbxassetid://3270017'; Bullet = 'rbxassetid://2697549'; Grass = 'rbxassetid://1080954'; | |
| 132 | Shark = 'rbxassetid://82821384';Sword = 'rbxassetid://12221720'} | |
| 133 | Mesh = function(par,num,x,y,z,tex) | |
| 134 | local msh = _ | |
| 135 | if num == 1 then msh = Instance.new("CylinderMesh",par)
| |
| 136 | elseif num == 2 then msh = Instance.new("SpecialMesh",par) msh.MeshType = 3
| |
| 137 | elseif num == 3 then msh = Instance.new("BlockMesh",par)
| |
| 138 | elseif type(num) == 'string' then msh = Instance.new("SpecialMesh",par)
| |
| 139 | msh.MeshId = string.find(num,'://') == _ and Meshes[num] or num | |
| 140 | msh.TextureId = tex and tex or '' | |
| 141 | end | |
| 142 | msh.Scale = Vector3.new(x or 1,y or 1,z or 1) | |
| 143 | return msh | |
| 144 | end | |
| 145 | Weld = function(p0,p1,x,y,z,rx,ry,rz,par) | |
| 146 | p0.Position = p1.Position | |
| 147 | local w = Instance.new('Motor',par or p0)
| |
| 148 | w.Part0 = p1 | |
| 149 | w.Part1 = p0 | |
| 150 | w.C0 = CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(rx or 0,ry or 0,rz or 0) | |
| 151 | w.MaxVelocity = .1 | |
| 152 | return w | |
| 153 | end | |
| 154 | GetGround = function(position,radius) local result = _ --- Check's height from nearest object | |
| 155 | local r = Ray.new(position,Vector3.FromNormalId(Enum.NormalId.Bottom)*radius) | |
| 156 | local o,p = Workspace:FindPartOnRay(r,char) | |
| 157 | if o and p then result = {}
| |
| 158 | result.obj = o | |
| 159 | result.pos = p | |
| 160 | result.mag = (position-p).magnitude | |
| 161 | end | |
| 162 | return result | |
| 163 | end | |
| 164 | gTorso = char.Torso | |
| 165 | ftorso = _ | |
| 166 | function genNew(ClassName, Parent, Properties) | |
| 167 | local nObj = Instance.new(ClassName, Parent) | |
| 168 | if Properties["FormFactor"] then | |
| 169 | nObj["FormFactor"] = Properties["FormFactor"] | |
| 170 | end | |
| 171 | for Prop, Value in pairs(Properties) do | |
| 172 | nObj[Prop] = Value | |
| 173 | end | |
| 174 | return nObj | |
| 175 | end | |
| 176 | --Anim | |
| 177 | Lock = function(which) --- For using Animation | |
| 178 | local torso = ftorso or gTorso | |
| 179 | local result = {rw=false,lw=false}
| |
| 180 | if which == 'R' then | |
| 181 | if not rw then | |
| 182 | rabr = Part(1,1,1,'White',0) rabr.Transparency = 1 | |
| 183 | rabr.Position = torso.Position | |
| 184 | rw = Weld(rabr,torso,1.5,.5,0,0,0,0) rw.Parent = Weapon rw.Name = 'rw' | |
| 185 | w = Instance.new("Weld",Weapon)
| |
| 186 | w.Part0,w.Part1 = char['Right Arm'],rabr | |
| 187 | w.C1 = CFrame.new(0,-.5,0) | |
| 188 | else | |
| 189 | rabr:Destroy() | |
| 190 | rw = _ | |
| 191 | end | |
| 192 | elseif which == 'L' then | |
| 193 | if not lw then | |
| 194 | labr = Part(1,1,1,'White',0) labr.Transparency = 1 | |
| 195 | labr.Position = torso.Position | |
| 196 | lw = Weld(labr,torso,-1.5,.5,0,0,0,0) lw.Parent = Weapon rw.Name = 'lw' | |
| 197 | w = Instance.new("Weld",Weapon)
| |
| 198 | w.Part0,w.Part1 = char['Left Arm'],labr | |
| 199 | w.C1 = CFrame.new(0,-.5,0) | |
| 200 | else | |
| 201 | labr:Destroy() | |
| 202 | lw = _ | |
| 203 | end | |
| 204 | elseif which == _ then | |
| 205 | if b then | |
| 206 | local rw,lw = FFS(b,'rw') FFS(b,'lw') | |
| 207 | return rw,lw | |
| 208 | else | |
| 209 | return rw,lw | |
| 210 | end | |
| 211 | end | |
| 212 | end | |
| 213 | Lock2 = function(which) --- For using Animation | |
| 214 | local torso = ftorso or gTorso | |
| 215 | local result = {rw2=false,lw2=false}
| |
| 216 | if which == 'R' then | |
| 217 | if not rw2 then | |
| 218 | rlbr = Part(1,1,1,'White',0) rlbr.Transparency = 1 | |
| 219 | rlbr.Position = torso.Position | |
| 220 | rw2 = Weld(rlbr,torso,.5,-1.5,0,0,0,0) rw2.Parent = Weapon rw2.Name = 'rw2' | |
| 221 | w = Instance.new("Weld",Weapon)
| |
| 222 | w.Part0,w.Part1 = char['Right Leg'],rlbr | |
| 223 | w.C1 = CFrame.new(0,-.5,0) | |
| 224 | else | |
| 225 | rlbr:Destroy() | |
| 226 | rw2 = _ | |
| 227 | end | |
| 228 | elseif which == 'L' then | |
| 229 | if not lw2 then | |
| 230 | llbr = Part(1,1,1,'White',0) llbr.Transparency = 1 | |
| 231 | llbr.Position = torso.Position | |
| 232 | lw2 = Weld(llbr,torso,-.5,-1.5,0,0,0,0) lw2.Parent = Weapon lw2.Name = 'lw2' | |
| 233 | w = Instance.new("Weld",Weapon)
| |
| 234 | w.Part0,w.Part1 = char['Left Leg'],llbr | |
| 235 | w.C1 = CFrame.new(0,-.5,0) | |
| 236 | else | |
| 237 | llbr:Destroy() | |
| 238 | lw2 = _ | |
| 239 | end | |
| 240 | elseif which == _ then | |
| 241 | if b then | |
| 242 | local rw2,lw2 = FFS(b,'rw2') FFS(b,'lw2') | |
| 243 | return rw2,lw2 | |
| 244 | else | |
| 245 | return rw2,lw2 | |
| 246 | end | |
| 247 | end | |
| 248 | end | |
| 249 | tw = function(Weld, Stop, Step,a) --- TweenWeld function | |
| 250 | local func = function() | |
| 251 | local Start = Weld.C1 | |
| 252 | local X1, Y1, Z1 = Start:toEulerAnglesXYZ() | |
| 253 | local Stop = Stop | |
| 254 | local X2, Y2, Z2 = Stop:toEulerAnglesXYZ() | |
| 255 | ||
| 256 | for i = 0, 1, Step or .1 do | |
| 257 | Weld.C1 = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i), | |
| 258 | (Start.p.Y * (1 - i)) + (Stop.p.Y * i), | |
| 259 | (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ( | |
| 260 | (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i), | |
| 261 | (Z1 * (1 - i)) + (Z2 * i) ) | |
| 262 | wait() | |
| 263 | end | |
| 264 | ||
| 265 | Weld.C1 = Stop | |
| 266 | end | |
| 267 | if a then coroutine.wrap(function() func() end)() else func() end | |
| 268 | end | |
| 269 | tw2 = function(Weld, Stop, Step,a) --- TweenWeld function | |
| 270 | local func = function() | |
| 271 | local Start = Weld.C0 | |
| 272 | local X1, Y1, Z1 = Start:toEulerAnglesXYZ() | |
| 273 | local Stop = Stop | |
| 274 | local X2, Y2, Z2 = Stop:toEulerAnglesXYZ() | |
| 275 | ||
| 276 | for i = 0, 1, Step or .1 do | |
| 277 | Weld.C0 = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i), | |
| 278 | (Start.p.Y * (1 - i)) + (Stop.p.Y * i), | |
| 279 | (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ( | |
| 280 | (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i), | |
| 281 | (Z1 * (1 - i)) + (Z2 * i) ) | |
| 282 | wait() | |
| 283 | end | |
| 284 | ||
| 285 | Weld.C0 = Stop | |
| 286 | end | |
| 287 | if a then coroutine.wrap(function() func() end)() else func() end | |
| 288 | end | |
| 289 | tc = function(Part, Stop, Step,a) --- TweenCFrame function | |
| 290 | local func = function() | |
| 291 | local Start = Part.CFrame | |
| 292 | local X1, Y1, Z1 = Start:toEulerAnglesXYZ() | |
| 293 | local Stop = Stop | |
| 294 | local X2, Y2, Z2 = Stop:toEulerAnglesXYZ() | |
| 295 | ||
| 296 | for i = 0, 1, Step or .1 do | |
| 297 | Part.CFrame = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i), | |
| 298 | (Start.p.Y * (1 - i)) + (Stop.p.Y * i), | |
| 299 | (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ( | |
| 300 | (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i), | |
| 301 | (Z1 * (1 - i)) + (Z2 * i) ) | |
| 302 | wait() | |
| 303 | end | |
| 304 | ||
| 305 | Part.CFrame = Stop | |
| 306 | end | |
| 307 | if a then coroutine.wrap(function() func() end)() else func() end | |
| 308 | end | |
| 309 | --/Anim | |
| 310 | --SFX | |
| 311 | Sparks = function(part,position,radius,number,number2) | |
| 312 | local part = part | |
| 313 | part.Parent = _ | |
| 314 | mode = Instance.new("Model",Weapon)
| |
| 315 | for i = 1,number2 do | |
| 316 | local pos = position+Vector3.new(mr(-radius,radius),mr(-radius,radius),mr(-radius,radius)) | |
| 317 | local mag = (position-pos).magnitude | |
| 318 | local laz = part:Clone() laz.Parent = mode laz.Anchored = true | |
| 319 | laz.Size = Vector3.new(laz.Size.x,mag,laz.Size.z) | |
| 320 | --Mesh(laz,1,1,1,1) | |
| 321 | laz.CFrame = (cfn(position,pos)*cfn(0,0,-mag/2))*ang(math.pi/2,0,0) | |
| 322 | cframe = (laz.CFrame*cfn(0,-mag/2,0)).p | |
| 323 | pos2 = cframe+Vector3.new(mr(-radius,radius),mr(-radius,radius),mr(-radius,radius)) | |
| 324 | mag2 = (cframe-pos2).magnitude | |
| 325 | local laz2 = part:Clone() laz2.Parent = mode | |
| 326 | laz2.Size = Vector3.new(laz.Size.x,mag2,laz.Size.z) laz2.Anchored = true | |
| 327 | --Mesh(laz2,1,1,1,1) | |
| 328 | laz2.CFrame = (cfn(cframe,pos2)*cfn(0,0,-mag2/2))*ang(math.pi/2,0,0) | |
| 329 | previo = laz2 | |
| 330 | for i = 1,number do | |
| 331 | cframe = (previo.CFrame*cfn(0,-mag/2,0)).p | |
| 332 | pos2 = cframe+Vector3.new(mr(-radius,radius),mr(-radius,radius),mr(-radius,radius)) | |
| 333 | mag2 = (cframe-pos2).magnitude | |
| 334 | laz2 = part:Clone() laz2.Parent = mode | |
| 335 | laz2.Size = Vector3.new(laz.Size.x,mag2,laz.Size.z) laz2.Anchored = true | |
| 336 | --Mesh(laz2,1,1,1,1) | |
| 337 | laz2.CFrame = (cfn(cframe,pos2)*cfn(0,0,-mag2/2))*ang(math.pi/2,0,0) | |
| 338 | previo = laz2 | |
| 339 | end | |
| 340 | end | |
| 341 | Debris:AddItem(mode,.1) | |
| 342 | return mode | |
| 343 | end | |
| 344 | function trace(obj,cf,color,delay,t,thick) -- offset,color,delay,transparency,thickness | |
| 345 | if type(thick) == 'table' then | |
| 346 | x,y = thick[1],thick[2] | |
| 347 | else | |
| 348 | x,y = thick,thick | |
| 349 | end | |
| 350 | local name | |
| 351 | for i,v in pairs(getfenv()) do | |
| 352 | if v == obj then name = i end | |
| 353 | end | |
| 354 | getfenv()[name..'tr'] = true | |
| 355 | local prev = obj.CFrame | |
| 356 | coroutine.wrap(function() | |
| 357 | while getfenv()[name..'tr'] do | |
| 358 | local cf = obj.CFrame*cf | |
| 359 | local mag = (prev.p-cf.p).magnitude | |
| 360 | - | local p = Part(x or .1,mag,y or .1,color or 'White',t or .5) p.Anchored = true |
| 360 | + | local p = Part(x or .1,mag,y or .1,color or 'Black',t or .5) p.Anchored = true |
| 361 | if type(thick) ~= 'table' then Mesh(p,1) end | |
| 362 | p.CFrame = (cfn(prev.p,cf.p)*cfn(0,0,-mag/2))*ang(math.pi/2,0,0) | |
| 363 | Debris:AddItem(p,delay or 1) | |
| 364 | prev = cf | |
| 365 | wait() | |
| 366 | end end)() | |
| 367 | end | |
| 368 | Lightning = function(p0,p1,tym,ofs,col,th,tra) -- start end times offset color thickness | |
| 369 | local magz = (p0 - p1).magnitude local curpos = p0 local trz = {-ofs,ofs}
| |
| 370 | for i=1,tym do | |
| 371 | li = Part(th,th,magz/tym,col,tra or .4) li.Anchored = true | |
| 372 | local ofz = Vector3.new(trz[math.random(1,2)],trz[math.random(1,2)],trz[math.random(1,2)]) | |
| 373 | local trolpos = CFrame.new(curpos,p1)*CFrame.new(0,0,magz/tym).p+ofz | |
| 374 | if tym == i then | |
| 375 | local magz2 = (curpos - p1).magnitude li.Size = Vector3.new(th,th,magz2) | |
| 376 | li.CFrame = CFrame.new(curpos,p1)*CFrame.new(0,0,-magz2/2) | |
| 377 | else | |
| 378 | li.CFrame = cfn(curpos,trolpos)*cfn(0,0,magz/tym/2) | |
| 379 | end | |
| 380 | curpos = li.CFrame*cfn(0,0,magz/tym/2).p Debris:AddItem(li,0.25) | |
| 381 | end | |
| 382 | end | |
| 383 | --/SFX | |
| 384 | --Weapon | |
| 385 | - | hdl = Part(.25,4,.25,'Light stone grey') |
| 385 | + | hdl = Part(.25,4,.25,'Really Black') |
| 386 | hw = Weld(hdl,rarm,0,-1,0,-math.pi/2) | |
| 387 | Mesh(hdl,1) | |
| 388 | - | ydin = Part(.5,.5,.5,'Cyan') |
| 388 | + | ydin = Part(.5,.5,.5,'Bright red') |
| 389 | Weld(ydin,hdl,0,2.25,0) | |
| 390 | Mesh(ydin,2) | |
| 391 | - | tip = Part(1,2,1,'Cyan',.5) |
| 391 | + | tip = Part(1,2,1,'Bright red',.5) |
| 392 | tipw = Weld(tip,ydin,0,.6,0) | |
| 393 | Mesh(tip,2,1,1,1) | |
| 394 | plate = Part(2,.1,2,'Black') Mesh(plate,1,.5,.5,.5) | |
| 395 | Weld(plate,hdl,0,2,0) | |
| 396 | r = .5 | |
| 397 | for i = 1,360,30 do | |
| 398 | p = Part(.11,.1,.1,'Black') Mesh(p,3,1,1,.5) | |
| 399 | Weld(p,plate,math.cos(md(i))*r,0,math.sin(md(i))*r,math.pi/2,0,math.pi/2+md(i)) | |
| 400 | p2 = Part(.35,.1,.1,'Black') Mesh(p2,3,1,.5,.5) | |
| 401 | Weld(p2,p,0,r*2.25,0) | |
| 402 | end | |
| 403 | r = .1 | |
| 404 | for i = 0,1,.05 do | |
| 405 | if i%5 == 0 then wait() end | |
| 406 | p = Part(.1,.1,.1,'Black') Mesh(p,2) | |
| 407 | Weld(p,hdl,math.cos(md(i*360*3))*r,-2+i*4,math.sin(md(i*360*3))*r) | |
| 408 | end | |
| 409 | p = Part(1,1,1,'Cyan') | |
| 410 | Weld(p,hdl,0,-2,0,math.pi/2) | |
| 411 | Mesh(p,'Diamond',.5,.5,.5) | |
| 412 | --/Weapon | |
| 413 | ftorso = _ | |
| 414 | ftw = _ | |
| 415 | function FindHum(a) result = _ | |
| 416 | for i,v in pairs(a:children()) do | |
| 417 | if v:IsA'Humanoid' then result = v end | |
| 418 | end | |
| 419 | return result | |
| 420 | end | |
| 421 | function Equip() | |
| 422 | Lock'R' --Lock'L' | |
| 423 | PutBack'F' | |
| 424 | tw(rw,cfn()*ang(0,0,md(-5)),.1) | |
| 425 | --tw(lw,cfn()*ang(0,0,md(15))) | |
| 426 | equip = rw.C1 --equip2 = lw.C1 | |
| 427 | end | |
| 428 | function Unequip() PutBack'T' | |
| 429 | Lock'R' --Lock'L' | |
| 430 | end | |
| 431 | BackPos = cfn(0,0,.6)*ang(0,0,md(45)) | |
| 432 | HoldPos = cfn(0,-1,0)*ang(-math.pi/2,0,0) | |
| 433 | function PutBack(a) | |
| 434 | if a == 'T' then | |
| 435 | hw.Part0 = torso | |
| 436 | hw.C0 = BackPos | |
| 437 | elseif a == 'F' then | |
| 438 | hw.Part0 = rarm | |
| 439 | hw.C0 = HoldPos | |
| 440 | end | |
| 441 | end | |
| 442 | PutBack'T' | |
| 443 | --funcs | |
| 444 | local function check(k) local downed = false | |
| 445 | if not Keys[k] then downed = true else downed = false end | |
| 446 | return downed | |
| 447 | end | |
| 448 | local function WK(key) | |
| 449 | return (Keys[key] and downed) | |
| 450 | end | |
| 451 | local function CreateLoop(tim,keys) local count = 0 | |
| 452 | while count < tim do | |
| 453 | for i,v in pairs(keys) do | |
| 454 | if WK(i) then v(mouse) return end | |
| 455 | end | |
| 456 | count = count+1 | |
| 457 | wait() | |
| 458 | end | |
| 459 | end | |
| 460 | --/funcs | |
| 461 | function lerp(a,b,c) | |
| 462 | return a+(b-a)*c | |
| 463 | end | |
| 464 | --Attacks | |
| 465 | nsize = tip.Size | |
| 466 | Mons = Add.Sound("http://www.roblox.com/Asset/?id=2676305",2)
| |
| 467 | function slash() | |
| 468 | hurt = false | |
| 469 | local con = tip.Touched:connect(function(hit) | |
| 470 | local hum = FindHum(hit.Parent) | |
| 471 | if hum and hurt and hum.Health > 0 then | |
| 472 | hum.Health = hum.Health -(3) | |
| 473 | elseif hum and hum.Health <= 0 and not FFS(hum,'Dead') then hum.Health = -1 | |
| 474 | Mons:Play() Instance.new('BoolValue',hum).Name = 'Dead'
| |
| 475 | for i,v in pairs(hum.Parent:children()) do | |
| 476 | if v:IsA('Part') then
| |
| 477 | Instance.new('BodyForce',v).force = Vector3.new(0,v:GetMass()*floatforce,0)
| |
| 478 | end end | |
| 479 | end | |
| 480 | end) | |
| 481 | function stab() Lock'L' | |
| 482 | bp = Add.BP(torso,l(torso,0,5,-5).p) | |
| 483 | tw(rw,cfn(0,.7,0)*ang(md(-140),md(-45),md(20)),.1,'') --up | |
| 484 | tw(lw,cfn(0,.7,0)*ang(md(-140),md(45),md(20))) wait(3) | |
| 485 | end | |
| 486 | local function second() | |
| 487 | tw(rw,cfn(-.2,.3,.2)*ang(md(-130),md(-45),md(-10)),.1,'') --Rise | |
| 488 | for i = 0,1,.1 do wait() --Morph | |
| 489 | lerp(nsize,Vector3.new(.5,4,.5),i) | |
| 490 | tipw.Parent = ydin | |
| 491 | tipw.Part1 = tip tipw.Part0 = ydin | |
| 492 | tipw.C0 = cfn(0,.6+i*1.5,0) | |
| 493 | end | |
| 494 | Synth:Pitch(2) Synth:Play() | |
| 495 | tw(rw,cfn()*ang(md(40),md(0),md(-50)),.3) --Down | |
| 496 | hurt = true | |
| 497 | end | |
| 498 | tw(rw,cfn(-.2,.3,.2)*ang(md(-130),md(-45),md(-50)),.1,'') --Rise | |
| 499 | for i = 0,1,.1 do wait() --Morph | |
| 500 | tip.Size = lerp(nsize,Vector3.new(.5,4,.5),i) | |
| 501 | tipw.Parent = ydin | |
| 502 | tipw.Part1 = tip tipw.Part0 = ydin | |
| 503 | tipw.C0 = cfn(0,.6+i*1.5,0) | |
| 504 | end Synth:Play() | |
| 505 | downed = check('f') hurt = true
| |
| 506 | tw(rw,cfn()*ang(md(40),md(0),md(-10)),.3) --Down | |
| 507 | CreateLoop(1,{f=second;q=stab})
| |
| 508 | hurt = false | |
| 509 | tw(rw,equip,.1,'') --Back | |
| 510 | for i = 1,0,-.3 do wait() --Morph back | |
| 511 | tip.Size = lerp(nsize,Vector3.new(.5,4,.5),i) | |
| 512 | tipw.Parent = ydin | |
| 513 | tipw.Part1 = tip tipw.Part0 = ydin | |
| 514 | tipw.C0 = cfn(0,.6+i*1.5,0) | |
| 515 | end | |
| 516 | Synth:Pitch(1) con:disconnect() | |
| 517 | end | |
| 518 | Whoosh = Add.Sound("http://www.roblox.com/Asset/?id=18426149",1)
| |
| 519 | function trip() | |
| 520 | Lock2'R' | |
| 521 | local con = char['Right Leg'].Touched:connect(function(hit) | |
| 522 | local hum = FindHum(hit.Parent) | |
| 523 | hum.Health = hum.Health - 5 | |
| 524 | if hum then hum.Sit = true end | |
| 525 | end) | |
| 526 | tw(rw2,cfn(0,-.2,-.3)*ang(md(30),0,0)) Whoosh:Play() | |
| 527 | tw(rw2,cfn(0,.5,.3)*ang(md(-70),0,0),.3) | |
| 528 | tw(rw2,cfn(),.3) | |
| 529 | Lock2'R' | |
| 530 | con:disconnect() | |
| 531 | end | |
| 532 | function sit() | |
| 533 | if sitbp == nil then | |
| 534 | Lock2'R' Lock2'L' Lock'L' | |
| 535 | sitbp = Add.BP(torso,torso.Position) | |
| 536 | sitbg = Add.BG(torso) | |
| 537 | --rw2.C1 = cfn()*ang(md(i),0,md(i/(90/-30))) | |
| 538 | --lw2.C1 = cfn()*ang(md(i),0,md(i/(90/30))) | |
| 539 | tw(rw2,cfn(.15,.4,.3)*ang(md(-60),md(30),0),.1,'') --right leg | |
| 540 | tw(lw2,cfn(-.15,.4,.3)*ang(md(-60),md(-30),0),.1,'') --left leg | |
| 541 | tw(rw,cfn()*ang(md(25),0,md(-20)),.1,'') --rarm down | |
| 542 | tw(lw,cfn()*ang(md(25),0,md(20)),.1,'') --larm down | |
| 543 | cf = torso.CFrame | |
| 544 | for i = 0,1,.1 do wait() | |
| 545 | sitbp.position = torso.Position - Vector3.new(0,i*1.25,0) | |
| 546 | sitbg.cframe = cf*ang(md(i*20),0,0) | |
| 547 | end | |
| 548 | elseif sitbp ~= nil then | |
| 549 | --rw2.C1 = cfn()*ang(md(i),0,md(i/(90/-30))) | |
| 550 | --lw2.C1 = cfn()*ang(md(i),0,md(i/(90/30))) | |
| 551 | tw(rw2,cfn(),.1,'') | |
| 552 | tw(lw2,cfn(),.1,'') tw(rw,equip,.1,'') | |
| 553 | for i = 0,1,.1 do wait() | |
| 554 | sitbp.position = torso.Position + Vector3.new(0,i,0) | |
| 555 | sitbg.cframe = cf*cfn(-i,-i,-i) | |
| 556 | end | |
| 557 | Lock2'R' Lock2'L' Lock'L' | |
| 558 | sitbp:Remove() sitbg:Destroy() sitbp = nil sitbg = _ | |
| 559 | end | |
| 560 | end | |
| 561 | Crack = Add.Sound("http://www.roblox.com/Asset/?id=15933756",1)
| |
| 562 | Crack.Sound.Volume = 300 | |
| 563 | function blast() local list = {}
| |
| 564 | tw(rw,cfn()*ang(md(-120),0,0),.1,'') | |
| 565 | tw(hw,cfn()*ang(md(45),0,0)) | |
| 566 | - | met = Part(1,1,1,'White',0,1,1) |
| 566 | + | met = Part(1,1,1,'Black',0,1,1) |
| 567 | holding = true | |
| 568 | mag = 1 maxmag = 15 | |
| 569 | while holding do mag = mag < maxmag and mag+.5 or maxmag | |
| 570 | met.Size = Vector3.new(1,mag*7,1) | |
| 571 | met.CFrame = l(l(torso,0,0,-7),0,0,-mag*7/2,math.pi/2) | |
| 572 | wait() | |
| 573 | end | |
| 574 | met:Destroy() | |
| 575 | tcf = torso.CFrame | |
| 576 | for y = 0,mag do | |
| 577 | local ground = GetGround(l(tcf,0,0,-7-y*7).p,300) | |
| 578 | if ground.pos then | |
| 579 | cf = cfn(ground.pos) | |
| 580 | end | |
| 581 | for i = 1,15 do local tab = {}
| |
| 582 | - | p = Part(1,1,1,i%2 == 0 and 'White' or 'Cyan',0,1,1) |
| 582 | + | p = Part(1,1,1,i%2 == 0 and 'Black' or 'Bright red',0,1,1) |
| 583 | p.CFrame = l(cf,mr(-5,5),0,mr(-5,5)) | |
| 584 | tab.obj = p | |
| 585 | tab.cf = p.CFrame | |
| 586 | tab.size = mr(5,10) | |
| 587 | table.insert(list,tab) | |
| 588 | end | |
| 589 | end Crack:Play() | |
| 590 | for i = 0,1,.2 do wait() | |
| 591 | for _,v in pairs(list) do | |
| 592 | v.obj.Size = Vector3.new(1,v.size*i,1) | |
| 593 | v.obj.CFrame = v.cf*cfn(0,v.size*i/2,0) | |
| 594 | end | |
| 595 | end | |
| 596 | Delay(4,function() | |
| 597 | for i = 1,0,-.2 do wait() | |
| 598 | for _,v in pairs(list) do | |
| 599 | v.obj.Size = Vector3.new(1,v.size*i,1) | |
| 600 | v.obj.CFrame = v.cf*cfn(0,v.size*i/2,0) | |
| 601 | end | |
| 602 | end | |
| 603 | for _,v in pairs(list) do | |
| 604 | v.obj:Destroy() | |
| 605 | end end) | |
| 606 | tw(rw,equip,.1,'') tw(hw,cfn()) | |
| 607 | end | |
| 608 | Cages = {}
| |
| 609 | function shoudon(mouse) a = 0 | |
| 610 | Mod = Instance.new('Model',Weapon)
| |
| 611 | Cur_Parent = Mod | |
| 612 | p = Part(1,1,1,'Black',1) p.Anchored = true | |
| 613 | holding = true | |
| 614 | genNew('SelectionBox',p,{
| |
| 615 | Adornee = p; | |
| 616 | - | Color = bcol'Cyan'; |
| 616 | + | Color = bcol'Bright red'; |
| 617 | }) | |
| 618 | cf = mouse.hit | |
| 619 | while holding do wait() a = a+1 | |
| 620 | if Keys.e then for i,v in pairs(Cages) do v:Destroy() end p:Destroy() Cages = {}
| |
| 621 | return end | |
| 622 | p.Size = Vector3.new(a,a,a) | |
| 623 | p.CFrame = cfn(cf.p)*cfn(0,a/2,0) | |
| 624 | end | |
| 625 | ||
| 626 | for i = 1,0,-.1 do | |
| 627 | wait() | |
| 628 | p.Transparency = i | |
| 629 | end | |
| 630 | for _,y in pairs({-a/2+.5,a/2+.5}) do
| |
| 631 | for _,pos in pairs({ {x=a/2,z=0};{x=-a/2,z=0};{z=a/2,x=0,r=1};{z=-a/2,x=0,r=1} }) do
| |
| 632 | w = Part(1,1,a+1,'Black',0,1,1) | |
| 633 | w.CFrame = l(p,pos.x,y,pos.z,0,pos.r and math.pi/2 or 0) | |
| 634 | - | w = Part(1,a-1,a-1,'Cyan',.5,1,1) |
| 634 | + | w = Part(1,a-1,a-1,'Bright red',.5,1,1) |
| 635 | w.CFrame = l(p,pos.x,.5,pos.z,0,pos.r and math.pi/2 or 0) | |
| 636 | end | |
| 637 | end | |
| 638 | - | w = Part(1,a-1,a-1,'Cyan',.5,1,1) |
| 638 | + | w = Part(1,a-1,a-1,'Bright red',.5,1,1) |
| 639 | w.CFrame = l(p,0,a/2,0,0,0,math.pi/2) | |
| 640 | - | w = Part(1,a-1,a-1,'Cyan',.5,1,1) |
| 640 | + | w = Part(1,a-1,a-1,'Bright red',.5,1,1) |
| 641 | w.CFrame = l(p,0,-a/2,0,0,0,math.pi/2) | |
| 642 | for i,pos in pairs({ {x=a/2,z=a/2};{x=-a/2,z=-a/2};{z=a/2,x=-a/2};{z=-a/2,x= a/2} }) do
| |
| 643 | w = Part(1,a,1,'Black',0,1,1) | |
| 644 | w.CFrame = l(p,pos.x,0,pos.z,0) | |
| 645 | end | |
| 646 | table.insert(Cages,Mod) Cur_Parent = _ | |
| 647 | for i = 0,1,.1 do | |
| 648 | wait() | |
| 649 | p.Transparency = i | |
| 650 | end | |
| 651 | p:Destroy() | |
| 652 | end | |
| 653 | for i,v in pairs(torso:children()) do if v:IsA'BodyGyro' or v:IsA'BodyPosition' or v:IsA'BodyVelocity' then v:Destroy() end end | |
| 654 | function teleport(mouse) char.archivable = true | |
| 655 | coroutine.wrap(function() loopi = true a = 0 | |
| 656 | repeat a = a+1 | |
| 657 | - | local p = Part(5,5,5,a%2 == 0 and 'White' or 'Cyan',.5) |
| 657 | + | local p = Part(5,5,5,a%2 == 0 and 'Black' or 'Bright red',.5) |
| 658 | p.CFrame = l(torso,0,0,0,mr(-10,10),mr(-10,10),mr(-10,10)) | |
| 659 | Debris:AddItem(p,.1) wait() | |
| 660 | until not loopi | |
| 661 | end)() | |
| 662 | tc(torso,cfn(mouse.hit.p)*cfn(0,5,0),.1) | |
| 663 | loopi = false | |
| 664 | end | |
| 665 | function loud() | |
| 666 | tw(rw,cfn()*ang(md(40),md(-25),0),.1,'') | |
| 667 | for i = 0,1,.1 do wait() | |
| 668 | tip.Size = Vector3.new(1+i*1,2-i*1.5,1+i*1) | |
| 669 | tipw.Parent = ydin | |
| 670 | tipw.Part1 = tip | |
| 671 | end | |
| 672 | e = Instance.new("Explosion",Workspace)
| |
| 673 | e.BlastPressure = 0 | |
| 674 | e.Position = tip.Position | |
| 675 | e.Hit:connect(function(hit) | |
| 676 | local hum = FindHum(hit.Parent) | |
| 677 | if hum and hum.Parent ~= char then | |
| 678 | hum.Health = hum.Health -(3) | |
| 679 | hum.Sit = true | |
| 680 | hum.Torso.Velocity = cfn(e.Position,Vector3.new(hum.Torso.Position.x,torso.Position.y,hum.Torso.Position.z)).lookVector*100 | |
| 681 | end | |
| 682 | end) | |
| 683 | coroutine.wrap(function() | |
| 684 | - | local p = Part(1,1,1,'Cyan',.5,1,0) |
| 684 | + | local p = Part(1,1,1,'Bright red',.5,1,0) |
| 685 | p.CFrame = cfn(tip.CFrame.p)*ang(math.pi/2,0,0) | |
| 686 | msh = Mesh(p,'Ring') | |
| 687 | for i = 1,30 do wait() | |
| 688 | msh.Scale = Vector3.new(i,i,1) | |
| 689 | p.Transparency = i/30 | |
| 690 | end | |
| 691 | p:Destroy() | |
| 692 | end)() | |
| 693 | q = Add.BV(torso,cfn(l(torso).p,l(torso,0,2,5).p).lookVector*100) | |
| 694 | Debris:AddItem(q,.5) | |
| 695 | tw(rw,equip,.1,'') | |
| 696 | for i = 1,0,-.1 do wait() | |
| 697 | tip.Size = Vector3.new(1+i*1,2-i*1.5,1+i*1) | |
| 698 | tipw.Parent = ydin | |
| 699 | tipw.Part1 = tip | |
| 700 | end | |
| 701 | end | |
| 702 | --/Attacks | |
| 703 | --Sounds | |
| 704 | Synth = Add.Sound("http://www.roblox.com/Asset/?id=46153268",1)
| |
| 705 | --/Sounds | |
| 706 | --http://www.roblox.com/asset/?id=107431751 | |
| 707 | --http://www.roblox.com/asset/?id=107431876 | |
| 708 | klist = { --- Key Bindings
| |
| 709 | f = slash; | |
| 710 | x = sit; | |
| 711 | eq = blast; | |
| 712 | qq = shoudon; | |
| 713 | t = teleport; | |
| 714 | c = loud; | |
| 715 | v = trip; | |
| 716 | } | |
| 717 | Keys = {}
| |
| 718 | function CheckKeys(key) | |
| 719 | if Keys[key] then Keys[key] = _ | |
| 720 | elseif not Keys[key] then Keys[key] = true | |
| 721 | end | |
| 722 | end | |
| 723 | hop.Selected:connect(function(mouse) Equip() | |
| 724 | mouse.Button1Up:connect(function() holding = false end) | |
| 725 | mouse.KeyUp:connect(function(key) CheckKeys(key) for i,v in pairs(klist) do if key == i:sub(1,1) and i:sub(2,2) == 'q' then holding = false end end end) | |
| 726 | mouse.KeyDown:connect(function(key) | |
| 727 | CheckKeys(key) | |
| 728 | if attacking then return end | |
| 729 | for i,v in pairs(klist) do | |
| 730 | if key == i:sub(1,1) then attacking = true v(mouse) attacking = false | |
| 731 | end | |
| 732 | end | |
| 733 | end) | |
| 734 | end) |