Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Converted with ttyyuu12345's model to script plugin v4
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- Model0 = Instance.new("Model")
- Part1 = Instance.new("Part")
- Decal2 = Instance.new("Decal")
- BlockMesh3 = Instance.new("BlockMesh")
- Humanoid4 = Instance.new("Humanoid")
- Part5 = Instance.new("Part")
- Sound6 = Instance.new("Sound")
- Sound7 = Instance.new("Sound")
- Script8 = Instance.new("Script")
- Sound9 = Instance.new("Sound")
- Script10 = Instance.new("Script")
- Script11 = Instance.new("Script")
- Script12 = Instance.new("Script")
- BoolValue13 = Instance.new("BoolValue")
- Script14 = Instance.new("Script")
- Script15 = Instance.new("Script")
- Part16 = Instance.new("Part")
- SpecialMesh17 = Instance.new("SpecialMesh")
- Model0.Name = "SCP-173"
- Model0.Parent = mas
- Part1.Name = "Phys2"
- Part1.Parent = Model0
- Part1.Transparency = 1
- Part1.Rotation = Vector3.new(0, 0.00999999978, 0)
- Part1.Anchored = true
- Part1.CanCollide = false
- Part1.FormFactor = Enum.FormFactor.Custom
- Part1.Size = Vector3.new(1.49034107, 1.19227278, 0.242000014)
- Part1.CFrame = CFrame.new(8.15035057, 5.75126219, 10.8641596, 1, -3.53153553e-07, 0.000210747166, 3.53092247e-07, 1, 2.90925698e-07, -0.000210747166, -2.90851261e-07, 1)
- Part1.Position = Vector3.new(8.15035057, 5.75126219, 10.8641596)
- Part1.Orientation = Vector3.new(0, 0.00999999978, 0)
- Decal2.Parent = Part1
- Decal2.Transparency = 1
- Decal2.Texture = "http://www.roblox.com/asset/?id=163640214"
- BlockMesh3.Parent = Part1
- BlockMesh3.Scale = Vector3.new(1, 1, 0.615843534)
- BlockMesh3.Scale = Vector3.new(1, 1, 0.615843534)
- Humanoid4.Parent = Model0
- Humanoid4.NameOcclusion = Enum.NameOcclusion.NoOcclusion
- Humanoid4.Health = 0
- Part5.Name = "Death"
- Part5.Parent = Model0
- Part5.Transparency = 1
- Part5.Rotation = Vector3.new(180, -0.00999999978, 180)
- Part5.Anchored = true
- Part5.CanCollide = false
- Part5.FormFactor = Enum.FormFactor.Custom
- Part5.Size = Vector3.new(36.2999992, 2.42000008, 36.2999992)
- Part5.CFrame = CFrame.new(8.30980396, 1.21002901, 11.1596584, -1, -4.8547711e-13, -0.000210776969, -4.80887303e-13, 1, -2.1770941e-11, 0.000210776969, -2.17708386e-11, -1)
- Part5.BottomSurface = Enum.SurfaceType.Smooth
- Part5.TopSurface = Enum.SurfaceType.Smooth
- Part5.Position = Vector3.new(8.30980396, 1.21002901, 11.1596584)
- Part5.Orientation = Vector3.new(0, -179.98999, 0)
- Sound6.Name = "Slide"
- Sound6.Parent = Part5
- Sound6.SoundId = "http://www.roblox.com/asset/?id=149293656"
- Sound6.Volume = 1
- Sound6.Looped = true
- Sound7.Name = "Kill"
- Sound7.Parent = Part5
- Sound7.SoundId = "http://www.roblox.com/asset/?id=149293645"
- Sound7.Volume = 1
- Script8.Parent = Part5
- table.insert(cors,sandbox(Script8,function()
- local soundIds = {150185006,150184965,150185025}
- local sounds = {}
- for i=1,#soundIds do
- local s = Instance.new("Sound")
- s.SoundId = "http://www.roblox.com/asset/?id=" .. soundIds[i]
- s.Volume = 1
- s.Parent = script.Parent
- sounds[#sounds + 1] = s
- end
- fpor = game.Workspace.FindPartOnRay
- seen_dist = 150
- function canSee(subject,viewer)
- if (not subject) or (not viewer) then return false end
- local sh = subject:findFirstChild("Death")
- local vh = viewer:findFirstChild("Head")
- if (not sh) or (not vh) then return false end
- local vec = sh.Position - vh.Position
- local isInFOV = (vec:Dot(vh.CFrame.lookVector) > 0)
- if (isInFOV) and (vec.magnitude < seen_dist) then
- local ray = Ray.new(vh.Position,vec.unit*200)
- local por = fpor(workspace,ray,viewer,false)
- return (por == nil) or (por:IsDescendantOf(subject))
- end
- return false
- end
- function canSee2(subject,viewer)
- if (not subject) or (not viewer) then return false end
- local sh = subject:findFirstChild("Death")
- local vh = viewer:findFirstChild("Head")
- if (not sh) or (not vh) then return false end
- local vec = sh.Position - vh.Position
- if (vec.magnitude < seen_dist) then
- local ray = Ray.new(vh.Position,vec.unit*200)
- local por = fpor(workspace,ray,viewer,false)
- return (por == nil) or (por:IsDescendantOf(subject))
- end
- return false
- end
- function stick(x, y)
- weld = Instance.new("Weld")
- weld.Part0 = x
- weld.Part1 = y
- local HitPos = x.Position
- local CJ = CFrame.new(HitPos)
- local C0 = x.CFrame:inverse() *CJ
- local C1 = y.CFrame:inverse() * CJ
- weld.C0 = C0
- weld.C1 = C1
- weld.Parent = x
- x.Anchored = false
- y.Anchored = false
- end
- stick(script.Parent, script.Parent.Parent.Phys)
- function stick2(x, y)
- weld = Instance.new("Weld")
- weld.Part0 = x
- weld.Part1 = y
- local HitPos = x.Position
- local CJ = CFrame.new(HitPos)
- local C0 = x.CFrame:inverse() *CJ
- local C1 = y.CFrame:inverse() * CJ
- weld.C0 = C0
- weld.C1 = C1
- weld.Parent = x
- x.Anchored = false
- y.Anchored = false
- end
- stick2(script.Parent, script.Parent.Parent.Phys2)
- while true do
- local minmag = nil
- local minply = nil
- local mindir = nil
- local beingwatched = false
- players = game:GetService("Players"):GetChildren()
- for i=1,#players do
- char = players[i].Character
- if char then
- local foundhead = char:FindFirstChild("Head")
- local foundtorso = char:FindFirstChild("Torso")
- local foundHumanoidRootPart = char:FindFirstChild("HumanoidRootPart")
- local foundhum = char:FindFirstChild("Humanoid")
- if foundhead and foundtorso and foundHumanoidRootPart and foundhum and foundhum.Health > 0 then
- local sub = (script.Parent.CFrame.p - foundhead.CFrame.p)
- local dir = sub.unit
- local mag = sub.magnitude
- if not minmag or minmag > mag then
- minmag = mag
- minply = char:FindFirstChild("HumanoidRootPart")
- mindir = dir
- if canSee(script.Parent.Parent, char) then beingwatched = true end
- end
- end
- end
- end
- if minply and not beingwatched and canSee2(script.Parent.Parent, minply.Parent) then
- if minmag and minmag <= 200 then
- local unit = (script.Parent.Position-minply.Position).unit
- unit = Vector3.new(unit.X,0,unit.Z)
- script.Parent.CFrame = CFrame.new(script.Parent.Position + (unit*-20), Vector3.new(minply.Position.X, script.Parent.Position.Y, minply.Position.Z))
- script.Parent.CFrame = script.Parent.CFrame * CFrame.Angles(0,math.rad(180),0)
- script.Parent.Slide:Play()
- if minmag < 15 and minply.Parent:FindFirstChild("Humanoid") and minply.Parent.Humanoid.Health > 0 then
- minply.Parent:BreakJoints()
- script.Parent.Kill:Play()
- end
- end
- end
- wait(.1)
- script.Parent.Slide:Pause()
- wait(.1)
- end
- end))
- Sound9.Parent = Part5
- Sound9.SoundId = "rbxassetid://150185025"
- Sound9.Volume = 1
- Sound9.PlayOnRemove = true
- Script10.Name = "Movement"
- Script10.Parent = Part5
- table.insert(cors,sandbox(Script10,function()
- function findNearestTorso(pos)
- local list = game.Workspace:children()
- local torso = nil
- local dist = 100
- local temp = nil
- local human = nil
- local temp2 = nil
- for x = 1, #list do
- temp2 = list[x]
- if (temp2.className == "Model") and (temp2 ~= script.Parent) then
- temp = temp2:findFirstChild("Right Arm")
- human = temp2:findFirstChild("Humanoid")
- if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then
- if (temp.Position - pos).magnitude < dist then
- torso = temp
- dist = (temp.Position - pos).magnitude
- end
- end
- end
- end
- return torso
- end
- while true do
- wait(math.random(1,5))
- if (not script.Parent.Q_Locked.Value) then
- script.Parent.Zombie.Jump = false
- end
- local target = findNearestTorso(script.Parent.Torso.Position)
- if target ~= nil then
- script.Parent.Zombie:MoveTo(target.Position, target)
- end
- end
- end))
- Script11.Name = "QuantumLock"
- Script11.Parent = Model0
- table.insert(cors,sandbox(Script11,function()
- --Notes, the distance between the main brick and the others can be as big or small as you want (i set it to 12 or something, but it can be anything)
- dist = 50
- local StoneColor = "Brick yellow"
- local Speed = 30
- wait(2)
- local angel = script.Parent
- local torso = angel.Torso
- local hum = angel.Zombie
- local qlock = angel.Q_Locked
- local parts = {}
- local bcolors = {}
- local trans = {}
- local refs = {}
- function Lock()
- if (qlock.Value) then return end
- qlock.Value = true
- hum.WalkSpeed = 0
- parts,bcolors,trans,refs = {},{},{},{}
- for i,p in pairs(angel:children()) do
- if (p:IsA("BasePart")) then
- table.insert(parts,p)
- table.insert(bcolors,tostring(p.BrickColor))
- table.insert(trans,p.Transparency)
- table.insert(refs,p.Reflectance)
- p.BrickColor = BrickColor.new(StoneColor)
- p.Transparency = 1
- p.Reflectance = 0
- end
- end
- end
- function Unlock()
- if (not qlock.Value) then return end
- qlock.Value = false
- hum.WalkSpeed = Speed
- for i,p in pairs(parts) do
- p.BrickColor = BrickColor.new(bcolors[i])
- p.Transparency = trans[i]
- p.Reflectance = refs[i]
- end
- end
- function CanBeSeen()
- for i,v in pairs(game.Players:children()) do
- if (v.Character ~= nil) and (v.Character:findFirstChild("Torso") ~= nil) then
- if (v.Character.Torso.Position - torso.Position).magnitude < dist then
- distA = (torso.Position - (v.Character.Torso.CFrame * CFrame.new(5,0,-10)).p).magnitude
- distB= (torso.Position - (v.Character.Torso.CFrame * CFrame.new(-5,0,-10)).p).magnitude
- distC= (torso.Position - (v.Character.Torso.CFrame * CFrame.new(0,0,2)).p).magnitude
- if distA < distC and distB < distC then return true end
- end
- end
- end
- return false end
- Unlock()
- while true do
- wait(0.1)
- if (CanBeSeen()) then
- Lock()
- else
- Unlock()
- end
- end
- --D fl V Y
- end))
- Script12.Name = "AngelSetup"
- Script12.Parent = Model0
- table.insert(cors,sandbox(Script12,function()
- local angel = script.Parent
- local w = Instance.new("Weld")
- w.Parent = game.JointsService
- w.Part0 = angel.Torso
- for i,p in pairs(angel:children()) do
- if (p:IsA("BasePart")) then
- p.Anchored = false
- end
- end
- end))
- BoolValue13.Name = "Q_Locked"
- BoolValue13.Parent = Model0
- Script14.Name = "Weld"
- Script14.Parent = Model0
- table.insert(cors,sandbox(Script14,function()
- function weld()
- local parts,last = {}
- local function scan(parent)
- for _,v in pairs(parent:GetChildren()) do
- if (v:IsA("BasePart")) then
- if (last) then
- local w = Instance.new("Weld")
- w.Name = ("%s_Weld"):format(v.Name)
- w.Part0,w.Part1 = last,v
- w.C0 = last.CFrame:inverse()
- w.C1 = v.CFrame:inverse()
- w.Parent = last
- end
- last = v
- table.insert(parts,v)
- end
- scan(v)
- end
- end
- scan(script.Parent)
- for _,v in pairs(parts) do
- v.Anchored = false
- end
- wait(5)
- script.Parent.Script.Disabled = false
- end
- weld()
- script:Remove()
- end))
- Script15.Name = "Respawn"
- Script15.Parent = Model0
- table.insert(cors,sandbox(Script15,function()
- name="Humanoid"
- robo=script.Parent:clone()
- while true do
- wait(1)
- if script.Parent.Zombie.Health<1 then
- wait(4)
- robot=robo:clone()
- robot.Parent=script.Parent.Parent
- robot:makeJoints()
- script.Parent:remove()
- end
- end
- end))
- Part16.Name = "Phys"
- Part16.Parent = Model0
- Part16.BrickColor = BrickColor.new("Really red")
- Part16.Rotation = Vector3.new(0, 0.00999999978, 0)
- Part16.Size = Vector3.new(0.261000007, 7.66799831, 0.230000004)
- Part16.CFrame = CFrame.new(8.17468643, 7.19677734, 11.250083, 1, 2.24286183e-07, 0.000210806771, -2.24231556e-07, 1, -2.59079883e-07, -0.000210806771, 2.59032618e-07, 1)
- Part16.Color = Color3.new(1, 0, 0)
- Part16.Position = Vector3.new(8.17468643, 7.19677734, 11.250083)
- Part16.Orientation = Vector3.new(0, 0.00999999978, 0)
- Part16.Color = Color3.new(1, 0, 0)
- SpecialMesh17.Parent = Part16
- SpecialMesh17.MeshId = "rbxassetid://476426932"
- SpecialMesh17.Scale = Vector3.new(0.400000006, 0.400000006, 0.400000006)
- SpecialMesh17.TextureId = "rbxassetid://436149432"
- SpecialMesh17.MeshType = Enum.MeshType.FileMesh
- SpecialMesh17.Scale = Vector3.new(0.400000006, 0.400000006, 0.400000006)
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = workspace
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement