SHOW:
|
|
- or go back to the newest paste.
| 1 | --https://github.com/Mokiros/roblox-FE-compatibility | |
| 2 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
| |
| 3 | local Player,game,owner = owner,game | |
| 4 | local RealPlayer = Player | |
| 5 | do | |
| 6 | print("FE Compatibility code V2 by Mokiros")
| |
| 7 | local RealPlayer = RealPlayer | |
| 8 | script.Parent = RealPlayer.Character | |
| 9 | ||
| 10 | --Fake event to make stuff like Mouse.KeyDown work | |
| 11 | local Disconnect_Function = function(this) | |
| 12 | this[1].Functions[this[2]] = nil | |
| 13 | end | |
| 14 | local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
| |
| 15 | local FakeEvent_Metatable = {__index={
| |
| 16 | Connect = function(this,f) | |
| 17 | local i = tostring(math.random(0,10000)) | |
| 18 | while this.Functions[i] do | |
| 19 | i = tostring(math.random(0,10000)) | |
| 20 | end | |
| 21 | this.Functions[i] = f | |
| 22 | return setmetatable({this,i},Disconnect_Metatable)
| |
| 23 | end | |
| 24 | }} | |
| 25 | FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect | |
| 26 | local function fakeEvent() | |
| 27 | return setmetatable({Functions={}},FakeEvent_Metatable)
| |
| 28 | end | |
| 29 | ||
| 30 | --Creating fake input objects with fake variables | |
| 31 | local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
| |
| 32 | FakeMouse.keyUp = FakeMouse.KeyUp | |
| 33 | FakeMouse.keyDown = FakeMouse.KeyDown | |
| 34 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
| |
| 35 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
| |
| 36 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
| |
| 37 | end} | |
| 38 | --Merged 2 functions into one by checking amount of arguments | |
| 39 | CAS.UnbindAction = CAS.BindAction | |
| 40 | ||
| 41 | --This function will trigger the events that have been :Connect()'ed | |
| 42 | local function TriggerEvent(self,ev,...) | |
| 43 | for _,f in pairs(self[ev].Functions) do | |
| 44 | f(...) | |
| 45 | end | |
| 46 | end | |
| 47 | FakeMouse.TriggerEvent = TriggerEvent | |
| 48 | UIS.TriggerEvent = TriggerEvent | |
| 49 | ||
| 50 | --Client communication | |
| 51 | local Event = Instance.new("RemoteEvent")
| |
| 52 | Event.Name = "UserInput_Event" | |
| 53 | Event.OnServerEvent:Connect(function(plr,io) | |
| 54 | if plr~=RealPlayer then return end | |
| 55 | FakeMouse.Target = io.Target | |
| 56 | FakeMouse.Hit = io.Hit | |
| 57 | if not io.isMouse then | |
| 58 | local b = io.UserInputState == Enum.UserInputState.Begin | |
| 59 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
| 60 | return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up") | |
| 61 | end | |
| 62 | if io.UserInputType == Enum.UserInputType.MouseButton2 then | |
| 63 | return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up") | |
| 64 | end | |
| 65 | for _,t in pairs(CAS.Actions) do | |
| 66 | for _,k in pairs(t.Keys) do | |
| 67 | if k==io.KeyCode then | |
| 68 | t.Function(t.Name,io.UserInputState,io) | |
| 69 | end | |
| 70 | end | |
| 71 | end | |
| 72 | FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
| 73 | UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false) | |
| 74 | end | |
| 75 | end) | |
| 76 | Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
| |
| 77 | local Mouse = owner:GetMouse() | |
| 78 | local UIS = game:GetService("UserInputService")
| |
| 79 | local input = function(io,RobloxHandled) | |
| 80 | if RobloxHandled then return end | |
| 81 | --Since InputObject is a client-side instance, we create and pass table instead | |
| 82 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
| |
| 83 | end | |
| 84 | UIS.InputBegan:Connect(input) | |
| 85 | UIS.InputEnded:Connect(input) | |
| 86 | local h,t | |
| 87 | --Give the server mouse data every second frame, but only if the values changed | |
| 88 | --If player is not moving their mouse, client won't fire events | |
| 89 | local HB = game:GetService("RunService").Heartbeat
| |
| 90 | while true do | |
| 91 | if h~=Mouse.Hit or t~=Mouse.Target then | |
| 92 | h,t=Mouse.Hit,Mouse.Target | |
| 93 | Event:FireServer({isMouse=true,Target=t,Hit=h})
| |
| 94 | end | |
| 95 | --Wait 2 frames | |
| 96 | for i=1,2 do | |
| 97 | HB:Wait() | |
| 98 | end | |
| 99 | end]==],script) | |
| 100 | ||
| 101 | ----Sandboxed game object that allows the usage of client-side methods and services | |
| 102 | --Real game object | |
| 103 | local RealGame = game | |
| 104 | ||
| 105 | --Metatable for fake service | |
| 106 | local FakeService_Metatable = {
| |
| 107 | __index = function(self,k) | |
| 108 | local s = rawget(self,"_RealService") | |
| 109 | if s then | |
| 110 | return typeof(s[k])=="function" | |
| 111 | and function(_,...)return s[k](s,...)end or s[k] | |
| 112 | end | |
| 113 | end, | |
| 114 | __newindex = function(self,k,v) | |
| 115 | local s = rawget(self,"_RealService") | |
| 116 | if s then s[k]=v end | |
| 117 | end | |
| 118 | } | |
| 119 | local function FakeService(t,RealService) | |
| 120 | t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService | |
| 121 | return setmetatable(t,FakeService_Metatable) | |
| 122 | end | |
| 123 | ||
| 124 | --Fake game object | |
| 125 | local FakeGame = {
| |
| 126 | GetService = function(self,s) | |
| 127 | return rawget(self,s) or RealGame:GetService(s) | |
| 128 | end, | |
| 129 | Players = FakeService({
| |
| 130 | LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
| |
| 131 | },"Players"), | |
| 132 | UserInputService = FakeService(UIS,"UserInputService"), | |
| 133 | ContextActionService = FakeService(CAS,"ContextActionService"), | |
| 134 | RunService = FakeService({
| |
| 135 | _btrs = {},
| |
| 136 | RenderStepped = RealGame:GetService("RunService").Heartbeat,
| |
| 137 | BindToRenderStep = function(self,name,_,fun) | |
| 138 | self._btrs[name] = self.Heartbeat:Connect(fun) | |
| 139 | end, | |
| 140 | UnbindFromRenderStep = function(self,name) | |
| 141 | self._btrs[name]:Disconnect() | |
| 142 | end, | |
| 143 | },"RunService") | |
| 144 | } | |
| 145 | rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer) | |
| 146 | FakeGame.service = FakeGame.GetService | |
| 147 | FakeService(FakeGame,game) | |
| 148 | --Changing owner to fake player object to support owner:GetMouse() | |
| 149 | game,owner = FakeGame,FakeGame.Players.LocalPlayer | |
| 150 | end | |
| 151 | local player=game:service'Players'.LocalPlayer | |
| 152 | local char=player.Character | |
| 153 | local mouse=player:GetMouse() | |
| 154 | local tor = char.Torso | |
| 155 | local ra = char['Right Arm'] | |
| 156 | local la = char['Left Arm'] | |
| 157 | local attacking = false | |
| 158 | function weld(p0,p1,c0) | |
| 159 | local w=Instance.new("Weld",p0)
| |
| 160 | w.Part0=p0 | |
| 161 | w.Part1=p1 | |
| 162 | w.C0=c0 | |
| 163 | return w | |
| 164 | end | |
| 165 | ||
| 166 | ---Clothing------------------------------------------------------ | |
| 167 | if char:findFirstChild("Shirt") then
| |
| 168 | char.Shirt:Remove() | |
| 169 | end | |
| 170 | ||
| 171 | if char:findFirstChild("Pants") then
| |
| 172 | char.Pants:Remove() | |
| 173 | end | |
| 174 | ||
| 175 | if char:findFirstChild("Shirt Graphic") then
| |
| 176 | char["Shirt Graphic"]:Remove() | |
| 177 | end | |
| 178 | ||
| 179 | if char.Torso:findFirstChild("roblox") then
| |
| 180 | char.Torso.roblox:Remove() | |
| 181 | end | |
| 182 | ||
| 183 | local Shirt = Instance.new("Shirt",char)
| |
| 184 | local Pants = Instance.new("Pants",char)
| |
| 185 | Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=188809505" | |
| 186 | Pants.PantsTemplate = "http://www.roblox.com/asset/?id=158093557" | |
| 187 | if char:FindFirstChild("Head") then char.Head.BrickColor = BrickColor.new("Sand red") end
| |
| 188 | if char:FindFirstChild("Torso") then char.Torso.BrickColor = BrickColor.new("Sand red") end
| |
| 189 | if char:FindFirstChild("Left Leg") then char["Left Leg"].BrickColor = BrickColor.new("Sand red") end
| |
| 190 | if char:FindFirstChild("Right Leg") then char["Right Leg"].BrickColor = BrickColor.new("Sand red") end
| |
| 191 | if char:FindFirstChild("Left Arm") then char["Left Arm"].BrickColor = BrickColor.new("Sand red") end
| |
| 192 | if char:FindFirstChild("Right Arm") then char["Right Arm"].BrickColor = BrickColor.new("Sand red") end
| |
| 193 | ----------------------------------------------------------------- | |
| 194 | --Health&Walkspeed-- | |
| 195 | char.Humanoid.MaxHealth = 1000 | |
| 196 | char.Humanoid.Health = 1000 | |
| 197 | char.Humanoid.WalkSpeed = 10 | |
| 198 | ---------- | |
| 199 | --Body | |
| 200 | local torso = char.Torso:Clone() | |
| 201 | torso.Size = Vector3.new(char.Torso.Size.x,char.Torso.Size.y,char.Torso.Size.z) | |
| 202 | torso.Transparency = 0 | |
| 203 | torso.CanCollide = false | |
| 204 | if torso:FindFirstChild("roblox") then torso.roblox:Remove() end
| |
| 205 | torso.Parent = char | |
| 206 | torso.CanCollide = true | |
| 207 | torso.Name = "Torso" | |
| 208 | torso["Left Shoulder"]:Destroy() | |
| 209 | torso["Right Shoulder"]:Destroy() | |
| 210 | torso["Left Hip"]:Destroy() | |
| 211 | torso["Right Hip"]:Destroy() | |
| 212 | char.Torso.Transparency = 1 | |
| 213 | char.Torso.Name = "Torso2" | |
| 214 | ||
| 215 | ||
| 216 | local tweld = Instance.new("Weld",char.Torso)
| |
| 217 | tweld.Name = "tweld" | |
| 218 | tweld.Part0 = char.Torso | |
| 219 | tweld.Part1 = char.Torso2 | |
| 220 | tweld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),0,0) | |
| 221 | char.Torso2.Name = "Torso" | |
| 222 | ----- | |
| 223 | ---Hair------------------------------------------------------------------------------ | |
| 224 | for _,v in pairs(char:GetChildren()) do if v.ClassName=="Accessory" then v:remove() end end | |
| 225 | ||
| 226 | hair = Instance.new("Part", char.Head)
| |
| 227 | hair.FormFactor = Enum.FormFactor.Plate | |
| 228 | hair.CanCollide = false | |
| 229 | hair.TopSurface = Enum.SurfaceType.Smooth | |
| 230 | hair.Size = Vector3.new(1, 0.8, 1) | |
| 231 | hair.Name = "Hair" | |
| 232 | hair.Friction = 0.3 | |
| 233 | hair.BottomSurface = Enum.SurfaceType.Smooth | |
| 234 | hair:BreakJoints() | |
| 235 | mesh = Instance.new("SpecialMesh", hair)
| |
| 236 | mesh.Scale = Vector3.new(1.02, 1.05, 1.05) | |
| 237 | mesh.MeshId = "http://www.roblox.com/asset/?id=12259089" | |
| 238 | mesh.TextureId = "http://www.roblox.com/asset/?id=208214380" | |
| 239 | mesh.MeshType = Enum.MeshType.FileMesh | |
| 240 | ||
| 241 | local hatweld = Instance.new("Weld",hair)
| |
| 242 | hatweld.Name = "Hatweld" | |
| 243 | hatweld.Part0 = hair | |
| 244 | hatweld.Part1 = char.Head | |
| 245 | hatweld.C0 = CFrame.new(0,-.4,0) | |
| 246 | char.Head.face.Texture = "http://www.roblox.com/asset/?id=133667125" | |
| 247 | hair:MakeJoints() | |
| 248 | ------------------------------------------------------------------------------------------- | |
| 249 | ---Music--------------------------------------------------------------------------------------------------- | |
| 250 | local music=Instance.new("Sound")
| |
| 251 | music.SoundId="http://www.roblox.com/asset/?id=225920256" | |
| 252 | music.PlayOnRemove=false | |
| 253 | music.Volume=.8 | |
| 254 | music.Looped=true | |
| 255 | music.Pitch = 1 | |
| 256 | music.Parent=char.Head | |
| 257 | music.Name = "ScissormanTheme" | |
| 258 | music:Play() | |
| 259 | ||
| 260 | char.Humanoid.Died:connect(function(musicremoval) | |
| 261 | music:Stop() | |
| 262 | wait() | |
| 263 | music:Destroy() | |
| 264 | end) | |
| 265 | ----------------------------------------------------------------------------------------------------------- | |
| 266 | ||
| 267 | --Model Build-- | |
| 268 | local scissors = Instance.new("Model", char)
| |
| 269 | scissors.Name = "Scissors" | |
| 270 | ||
| 271 | local blade2 = Instance.new("Model", scissors)
| |
| 272 | blade2.Name = "Blade2" | |
| 273 | ||
| 274 | blade = Instance.new("Part", blade2)
| |
| 275 | blade.FormFactor = Enum.FormFactor.Custom | |
| 276 | blade.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 277 | blade.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 278 | blade.Anchored = false | |
| 279 | blade.Material = Enum.Material.Metal | |
| 280 | blade.Size = Vector3.new(0.41, 2.581, 0.512) | |
| 281 | blade.Name = "Blade" | |
| 282 | blade.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 283 | blade.CFrame = CFrame.new(81.752, 5.278, 34.598)* CFrame.Angles(-2.6529195308685, 0, -3.1415927410126) | |
| 284 | blade.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 285 | blade.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 286 | blade.BrickColor = BrickColor.new("Fossil")
| |
| 287 | blade.Friction = 0.3 | |
| 288 | blade.CanCollide = false | |
| 289 | blade.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 290 | ||
| 291 | mesh = Instance.new("SpecialMesh", blade)
| |
| 292 | mesh.MeshType = Enum.MeshType.Wedge | |
| 293 | ||
| 294 | part = Instance.new("Part", blade2)
| |
| 295 | part.FormFactor = Enum.FormFactor.Custom | |
| 296 | part.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 297 | part.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 298 | part.Anchored = false | |
| 299 | part.Material = Enum.Material.Metal | |
| 300 | part.Size = Vector3.new(0.41, 1.721, 0.512) | |
| 301 | part.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 302 | part.CFrame = CFrame.new(81.752, 3.379, 33.589)* CFrame.Angles(0.48867347836494, 0, -0) | |
| 303 | part.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 304 | part.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 305 | part.BrickColor = BrickColor.new("Fossil")
| |
| 306 | part.Friction = 0.3 | |
| 307 | part.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 308 | ||
| 309 | mesh_2 = Instance.new("BlockMesh", part)
| |
| 310 | ||
| 311 | handle1 = Instance.new("Part", blade2)
| |
| 312 | handle1.FormFactor = Enum.FormFactor.Custom | |
| 313 | handle1.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 314 | handle1.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 315 | handle1.Anchored = false | |
| 316 | handle1.Material = Enum.Material.Metal | |
| 317 | handle1.Size = Vector3.new(0.41, 2.721, 0.512) | |
| 318 | handle1.Name = "Handle1" | |
| 319 | handle1.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 320 | handle1.CFrame = CFrame.new(81.747, 1.366, 32.744)* CFrame.Angles(-2.7924835681915, 0, -0) | |
| 321 | handle1.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 322 | handle1.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 323 | handle1.BrickColor = BrickColor.new("Fossil")
| |
| 324 | handle1.Friction = 0.3 | |
| 325 | handle1.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 326 | ||
| 327 | mesh_3 = Instance.new("BlockMesh", handle1)
| |
| 328 | ||
| 329 | handle1pos = Instance.new("Part", scissors)
| |
| 330 | handle1pos.FormFactor = Enum.FormFactor.Custom | |
| 331 | handle1pos.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 332 | handle1pos.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 333 | handle1pos.Anchored = false | |
| 334 | handle1pos.Transparency = 1 | |
| 335 | handle1pos.CanCollide = false | |
| 336 | handle1pos.Material = Enum.Material.Metal | |
| 337 | handle1pos.Size = Vector3.new(0.41, 2.721, 0.512) | |
| 338 | handle1pos.Name = "handle1pos" | |
| 339 | handle1pos.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 340 | handle1pos.CFrame = CFrame.new(81.747, 1.366, 32.744)* CFrame.Angles(-2.7924835681915, 0, -0) | |
| 341 | handle1pos.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 342 | handle1pos.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 343 | handle1pos.BrickColor = BrickColor.new("Fossil")
| |
| 344 | handle1pos.Friction = 0.3 | |
| 345 | handle1pos.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 346 | ||
| 347 | handle = Instance.new("Part", scissors)
| |
| 348 | handle.FormFactor = Enum.FormFactor.Custom | |
| 349 | handle.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 350 | handle.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 351 | handle.Anchored = false | |
| 352 | handle.Material = Enum.Material.Metal | |
| 353 | handle.Size = Vector3.new(0.41, 0.41, 0.41) | |
| 354 | handle.Name = "Handle" | |
| 355 | handle.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 356 | handle.CFrame = CFrame.new(81.852, 2.992, 33.43)* CFrame.Angles(-2.8078470230103, 1.5037103891373, 1.2398878335953) | |
| 357 | handle.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 358 | handle.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 359 | handle.BrickColor = BrickColor.new("Dark stone grey")
| |
| 360 | handle.Friction = 0.3 | |
| 361 | handle.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 362 | ||
| 363 | mesh_4 = Instance.new("SpecialMesh", handle)
| |
| 364 | mesh_4.Scale = Vector3.new(1, 1.2, 1) | |
| 365 | mesh_4.MeshType = Enum.MeshType.Sphere | |
| 366 | ||
| 367 | local blade1 = Instance.new("Model", scissors)
| |
| 368 | blade1.Name = "Blade1" | |
| 369 | ||
| 370 | blade_2 = Instance.new("Part", blade1)
| |
| 371 | blade_2.FormFactor = Enum.FormFactor.Custom | |
| 372 | blade_2.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 373 | blade_2.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 374 | blade_2.Anchored = false | |
| 375 | blade_2.Material = Enum.Material.Metal | |
| 376 | blade_2.Size = Vector3.new(0.41, 2.581, 0.512) | |
| 377 | blade_2.Name = "Blade" | |
| 378 | blade_2.CanCollide = false | |
| 379 | blade_2.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 380 | blade_2.CFrame = CFrame.new(81.752, 5.304, 32.333)* CFrame.Angles(-0.46782538294792, 0, -0) | |
| 381 | blade_2.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 382 | blade_2.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 383 | blade_2.BrickColor = BrickColor.new("Fossil")
| |
| 384 | blade_2.Friction = 0.3 | |
| 385 | blade_2.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 386 | ||
| 387 | mesh_5 = Instance.new("SpecialMesh", blade_2)
| |
| 388 | mesh_5.MeshType = Enum.MeshType.Wedge | |
| 389 | ||
| 390 | part_2 = Instance.new("Part", blade1)
| |
| 391 | part_2.FormFactor = Enum.FormFactor.Custom | |
| 392 | part_2.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 393 | part_2.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 394 | part_2.Anchored = false | |
| 395 | part_2.Material = Enum.Material.Metal | |
| 396 | part_2.Size = Vector3.new(0.41, 1.721, 0.512) | |
| 397 | part_2.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 398 | part_2.CFrame = CFrame.new(81.752, 3.385, 33.302)* CFrame.Angles(2.6737668514252, 0, -3.1415927410126) | |
| 399 | part_2.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 400 | part_2.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 401 | part_2.BrickColor = BrickColor.new("Fossil")
| |
| 402 | part_2.Friction = 0.3 | |
| 403 | part_2.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 404 | ||
| 405 | mesh_6 = Instance.new("BlockMesh", part_2)
| |
| 406 | ||
| 407 | handle1_2 = Instance.new("Part", blade1)
| |
| 408 | handle1_2.FormFactor = Enum.FormFactor.Custom | |
| 409 | handle1_2.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 410 | handle1_2.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 411 | handle1_2.Anchored = false | |
| 412 | handle1_2.Material = Enum.Material.Metal | |
| 413 | handle1_2.Size = Vector3.new(0.41, 2.721, 0.512) | |
| 414 | handle1_2.Name = "Handle1" | |
| 415 | handle1_2.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 416 | handle1_2.CFrame = CFrame.new(81.747, 1.366, 34.144)* CFrame.Angles(2.7925736904144, 0, -0) | |
| 417 | handle1_2.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 418 | handle1_2.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 419 | handle1_2.BrickColor = BrickColor.new("Fossil")
| |
| 420 | handle1_2.Friction = 0.3 | |
| 421 | handle1_2.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 422 | ||
| 423 | mesh_7 = Instance.new("BlockMesh", handle1_2)
| |
| 424 | ||
| 425 | handle1_2pos = Instance.new("Part", scissors)
| |
| 426 | handle1_2pos.FormFactor = Enum.FormFactor.Custom | |
| 427 | handle1_2pos.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 428 | handle1_2pos.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 429 | handle1_2pos.Anchored = false | |
| 430 | handle1_2pos.Transparency = 1 | |
| 431 | handle1_2pos.CanCollide = false | |
| 432 | handle1_2pos.Material = Enum.Material.Metal | |
| 433 | handle1_2pos.Size = Vector3.new(0.41, 2.721, 0.512) | |
| 434 | handle1_2pos.Name = "handle2pos" | |
| 435 | handle1_2pos.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 436 | handle1_2pos.CFrame = CFrame.new(81.747, 1.366, 34.144)* CFrame.Angles(2.7925736904144, 0, -0) | |
| 437 | handle1_2pos.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 438 | handle1_2pos.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 439 | handle1_2pos.BrickColor = BrickColor.new("Fossil")
| |
| 440 | handle1_2pos.Friction = 0.3 | |
| 441 | handle1_2pos.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 442 | ||
| 443 | part_3 = Instance.new("Part", scissors)
| |
| 444 | part_3.FormFactor = Enum.FormFactor.Custom | |
| 445 | part_3.LeftSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 446 | part_3.TopSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 447 | part_3.Anchored = false | |
| 448 | part_3.Material = Enum.Material.Metal | |
| 449 | part_3.Size = Vector3.new(0.41, 0.41, 0.41) | |
| 450 | part_3.FrontSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 451 | part_3.CFrame = CFrame.new(81.652, 3.002, 33.43)* CFrame.Angles(-2.8078470230103, 1.5037103891373, 1.2398878335953) | |
| 452 | part_3.RightSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 453 | part_3.BackSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 454 | part_3.BrickColor = BrickColor.new("Dark stone grey")
| |
| 455 | part_3.Friction = 0.3 | |
| 456 | part_3.BottomSurface = Enum.SurfaceType.SmoothNoOutlines | |
| 457 | ||
| 458 | mesh_8 = Instance.new("SpecialMesh", part_3)
| |
| 459 | mesh_8.Scale = Vector3.new(1, 1.2, 1) | |
| 460 | mesh_8.MeshType = Enum.MeshType.Sphere | |
| 461 | scissors:BreakJoints() | |
| 462 | blade1:BreakJoints() | |
| 463 | blade2:BreakJoints() | |
| 464 | ||
| 465 | local prev | |
| 466 | local parts = scissors:GetChildren() | |
| 467 | ||
| 468 | for i = 1,#parts do | |
| 469 | if (parts[i].className == "Part") or (parts[i].className == "WedgePart") or (parts[i].className == "Seat") or (parts[i].className == "VehicleSeat") or (parts[i].className == "CornerWedgePart") then | |
| 470 | if (prev ~= nil)then | |
| 471 | if parts[i]:FindFirstChild("Weld") then parts[i]:FindFirstChild("Weld"):Destroy() end
| |
| 472 | local weld = Instance.new("Weld")
| |
| 473 | weld.Part0 = prev | |
| 474 | weld.Part1 = parts[i] | |
| 475 | weld.C0 = prev.CFrame:inverse() | |
| 476 | weld.C1 = parts[i].CFrame:inverse() | |
| 477 | weld.Parent = prev | |
| 478 | end | |
| 479 | prev = parts[i] | |
| 480 | end | |
| 481 | end | |
| 482 | scissors:MakeJoints() | |
| 483 | ||
| 484 | local prev | |
| 485 | local parts = blade1:GetChildren() | |
| 486 | ||
| 487 | for i = 1,#parts do | |
| 488 | if (parts[i].className == "Part") or (parts[i].className == "WedgePart") or (parts[i].className == "Seat") or (parts[i].className == "VehicleSeat") or (parts[i].className == "CornerWedgePart") then | |
| 489 | if (prev ~= nil)then | |
| 490 | if parts[i]:FindFirstChild("Weld") then parts[i]:FindFirstChild("Weld"):Destroy() end
| |
| 491 | local weld = Instance.new("Weld")
| |
| 492 | weld.Part0 = prev | |
| 493 | weld.Part1 = parts[i] | |
| 494 | weld.C0 = prev.CFrame:inverse() | |
| 495 | weld.C1 = parts[i].CFrame:inverse() | |
| 496 | weld.Parent = prev | |
| 497 | end | |
| 498 | prev = parts[i] | |
| 499 | end | |
| 500 | end | |
| 501 | blade1:MakeJoints() | |
| 502 | local prev | |
| 503 | local parts = blade2:GetChildren() | |
| 504 | ||
| 505 | for i = 1,#parts do | |
| 506 | if (parts[i].className == "Part") or (parts[i].className == "WedgePart") or (parts[i].className == "Seat") or (parts[i].className == "VehicleSeat") or (parts[i].className == "CornerWedgePart") then | |
| 507 | if (prev ~= nil)then | |
| 508 | if parts[i]:FindFirstChild("Weld") then parts[i]:FindFirstChild("Weld"):Destroy() end
| |
| 509 | local weld = Instance.new("Weld")
| |
| 510 | weld.Part0 = prev | |
| 511 | weld.Part1 = parts[i] | |
| 512 | weld.C0 = prev.CFrame:inverse() | |
| 513 | weld.C1 = parts[i].CFrame:inverse() | |
| 514 | weld.Parent = prev | |
| 515 | end | |
| 516 | prev = parts[i] | |
| 517 | end | |
| 518 | end | |
| 519 | blade2:MakeJoints() | |
| 520 | ||
| 521 | local particleemitter = Instance.new("ParticleEmitter", scissors.Handle)
| |
| 522 | particleemitter.VelocitySpread = 200 | |
| 523 | particleemitter.Speed = NumberRange.new(10) | |
| 524 | particleemitter.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.2), NumberSequenceKeypoint.new(1, 0.2)})
| |
| 525 | particleemitter.Rate = 10 | |
| 526 | particleemitter.Texture = "http://www.roblox.com/asset/?id=311395391" | |
| 527 | particleemitter.Color = ColorSequence.new(Color3.new(1, 0.666667, 0), Color3.new(1, 0.666667, 0)) | |
| 528 | particleemitter.Enabled = false | |
| 529 | ||
| 530 | scissors.Handle.Weld.Name = "Weld2" | |
| 531 | weld(blade1.Handle1, scissors.handle1pos, CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),0,0)) | |
| 532 | weld(blade2.Handle1, scissors.handle2pos, CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),0,0)) | |
| 533 | ---Model Build End--- | |
| 534 | weld(tor, ra, CFrame.new(1,0,-1)*CFrame.Angles(math.rad(90),0,0)) | |
| 535 | weld(la, ra, CFrame.new(2,0,0)*CFrame.Angles(math.rad(0),0,0)) | |
| 536 | weld(scissors.Handle, tor, CFrame.new(4,0,-.2)*CFrame.Angles(math.rad(95),(math.rad(90)),0)) | |
| 537 | local sc1 = Instance.new("Sound")
| |
| 538 | sc1.SoundId="rbxassetid://357622136" | |
| 539 | sc1.PlayOnRemove=false | |
| 540 | sc1.Volume=0.7 | |
| 541 | sc1.Looped=false | |
| 542 | sc1.Pitch = 1 | |
| 543 | sc1.Parent=scissors.Handle | |
| 544 | local sc2 = Instance.new("Sound")
| |
| 545 | sc2.SoundId="rbxassetid://240785604" | |
| 546 | sc2.PlayOnRemove=false | |
| 547 | sc2.Volume=0.7 | |
| 548 | sc2.Looped=false | |
| 549 | sc2.Pitch = 1 | |
| 550 | sc2.Parent=scissors.Handle | |
| 551 | ||
| 552 | local open = true | |
| 553 | function scissoropen() | |
| 554 | open = true | |
| 555 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(2),0,0) | |
| 556 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-2),0,0) | |
| 557 | wait() | |
| 558 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(4),0,0) | |
| 559 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-4),0,0) | |
| 560 | wait() | |
| 561 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(6),0,0) | |
| 562 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-6),0,0) | |
| 563 | end | |
| 564 | ||
| 565 | function scissorclose() | |
| 566 | open = false | |
| 567 | attacking = true | |
| 568 | sc1:Play() | |
| 569 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-2),0,0) | |
| 570 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(2),0,0) | |
| 571 | wait() | |
| 572 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-4),0,0) | |
| 573 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(4),0,0) | |
| 574 | wait() | |
| 575 | blade2.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-6),0,0) | |
| 576 | blade1.Handle1.Weld.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(6),0,0) | |
| 577 | attacking = false | |
| 578 | end | |
| 579 | ||
| 580 | mouse.Button2Down:connect(function() | |
| 581 | if open == false then | |
| 582 | scissoropen() | |
| 583 | end | |
| 584 | end) | |
| 585 | mouse.Button1Down:connect(function() | |
| 586 | if open == true then | |
| 587 | scissorclose() | |
| 588 | end | |
| 589 | end) | |
| 590 | ||
| 591 | local blood = Instance.new("ParticleEmitter")
| |
| 592 | blood.VelocitySpread = 180 | |
| 593 | blood.Lifetime = NumberRange.new(1, 2) | |
| 594 | blood.Speed = NumberRange.new(10) | |
| 595 | blood.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.1), NumberSequenceKeypoint.new(1, 0.1)})
| |
| 596 | blood.Acceleration = Vector3.new(0, -10, 0) | |
| 597 | blood.RotSpeed = NumberRange.new(260) | |
| 598 | blood.Texture = "http://www.roblox.com/asset/?id=176677966" | |
| 599 | ||
| 600 | blade.Touched:connect(function(h) | |
| 601 | if attacking == true then | |
| 602 | if h.Parent:FindFirstChild("Humanoid") then
| |
| 603 | if h.Parent:FindFirstChild("Torso") then
| |
| 604 | local pclone = blood:Clone() | |
| 605 | pclone.Parent = h | |
| 606 | game.Debris:AddItem(pclone,1) | |
| 607 | end | |
| 608 | if h.Parent.Humanoid.Parent:FindFirstChild("ForceField") then h.Parent.ForceField:Destroy() end
| |
| 609 | if h.Name == "Torso" then h.Parent.Humanoid:TakeDamage(math.random(20,40)) end | |
| 610 | if h.Name == "Left Arm" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 611 | if h.Name == "Right Arm" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 612 | if h.Name == "Left Leg" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 613 | if h.Name == "Right Leg" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 614 | if h.Name == "Head" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 615 | end | |
| 616 | end | |
| 617 | end) | |
| 618 | blade_2.Touched:connect(function(h) | |
| 619 | if attacking == true then | |
| 620 | --if h.Parent:FindFirstChild("Humanoid") == nil and not h.Name:lower():find("base") then
| |
| 621 | --h.Anchored = false | |
| 622 | --h.Velocity = char.Head.CFrame.lookVector*30 | |
| 623 | --h:BreakJoints() | |
| 624 | --end | |
| 625 | if h.Parent:FindFirstChild("Humanoid") then
| |
| 626 | if h.Parent:FindFirstChild("Torso") then
| |
| 627 | local pclone = blood:Clone() | |
| 628 | pclone.Parent = h | |
| 629 | game.Debris:AddItem(pclone,1) | |
| 630 | end | |
| 631 | if h.Parent.Humanoid.Parent:FindFirstChild("ForceField") then h.Parent.ForceField:Destroy() end
| |
| 632 | if h.Name == "Torso" then h.Parent.Humanoid:TakeDamage(math.random(20,40)) end | |
| 633 | if h.Name == "Left Arm" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 634 | if h.Name == "Right Arm" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 635 | if h.Name == "Left Leg" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 636 | if h.Name == "Right Leg" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 637 | if h.Name == "Head" then local clone = h:Clone() clone.Parent = workspace clone.Position = h.Position clone.CanCollide = true h:Destroy() end | |
| 638 | end | |
| 639 | end | |
| 640 | end) | |
| 641 | ||
| 642 | local fpressed = 0 | |
| 643 | mouse.KeyDown:connect(function(key) | |
| 644 | if key == "f" then | |
| 645 | fpressed = fpressed + 1 | |
| 646 | if fpressed == 1 then | |
| 647 | tor.Weld.C0 = CFrame.new(1,.5,-1)*CFrame.Angles(math.rad(100),0,0) | |
| 648 | scissors.Handle.Weld.C0 = CFrame.new(4,0,-.8)*CFrame.Angles(math.rad(95),(math.rad(90)),0) | |
| 649 | end | |
| 650 | if fpressed ==2 then | |
| 651 | tor.Weld.C0 = CFrame.new(1,-.5,-1)*CFrame.Angles(math.rad(90),0,0) | |
| 652 | scissors.Handle.Weld.C0 = CFrame.new(4,0,.4)*CFrame.Angles(math.rad(95),(math.rad(90)),0) | |
| 653 | end | |
| 654 | if fpressed == 3 then | |
| 655 | fpressed = 0 | |
| 656 | tor.Weld.C0 = CFrame.new(1,0,-1)*CFrame.Angles(math.rad(90),0,0) | |
| 657 | scissors.Handle.Weld.C0 = CFrame.new(4,0,-.2)*CFrame.Angles(math.rad(95),(math.rad(90)),0) | |
| 658 | end | |
| 659 | end | |
| 660 | end) |