Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Fe Soldier AI [Free Version] Edit by HelloMyFrlen3
- --[[ {<HATS NEEDED>}
- https://www.roblox.com/catalog/617605556/Medieval-Hood-of-Mystery
- https://www.roblox.com/catalog/6470135113/Fan-Hand-Sign-Why-Dont-We-WDW
- https://www.roblox.com/catalog/48474313/Red-Roblox-Cap
- https://www.roblox.com/catalog/4391384843/International-Fedora-Russia
- https://www.roblox.com/catalog/48474294/ROBLOX-Girl-Hair
- https://www.roblox.com/catalog/62724852/Chestnut-Bun
- https://www.roblox.com/catalog/451220849/Lavender-Updo
- https://www.roblox.com/catalog/63690008/Pal-Hair
- https://www.roblox.com/catalog/62234425/Brown-Hair
- ]]
- FakeLimbs = {["Head"] = nil,["Torso1"] = nil,["Torso2"] = nil,["Right Arm"] = nil,["Left Arm"] = nil,["Right Leg"] = nil,["Left Leg"] = nil}
- Accessorys = {}
- local ModelsRequire = game:GetObjects("rbxassetid://8005457125")
- local MFolder = ModelsRequire[1]
- local HumanRoot = game.Players.LocalPlayer.Character.HumanoidRootPart
- function StickAcc(Part0,Part1,Angle,Position)
- Part0:FindFirstChildWhichIsA("Weld"):Destroy()
- local AlignPos = Instance.new('AlignPosition', Part1)
- AlignPos.ApplyAtCenterOfMass = true;
- AlignPos.MaxForce = 67752;
- AlignPos.MaxVelocity = math.huge/9e110;
- AlignPos.ReactionForceEnabled = false;
- AlignPos.Responsiveness = 200;
- AlignPos.RigidityEnabled = false;
- local AlignOri = Instance.new('AlignOrientation', Part1)
- AlignOri.MaxAngularVelocity = math.huge/9e110;
- AlignOri.MaxTorque = 67752;
- AlignOri.PrimaryAxisOnly = false;
- AlignOri.ReactionTorqueEnabled = false;
- AlignOri.Responsiveness = 200;
- AlignOri.RigidityEnabled = false;
- local AttachmentA=Instance.new('Attachment',Part1)
- local AttachmentB=Instance.new('Attachment',Part0)
- local AttachmentC=Instance.new('Attachment',Part1)
- local AttachmentD=Instance.new('Attachment',Part0)
- AlignPos.Attachment1 = AttachmentA;
- AlignPos.Attachment0 = AttachmentB;
- AlignOri.Attachment1 = AttachmentC;
- AlignOri.Attachment0 = AttachmentD;
- AttachmentC.Orientation = Angle
- Part0.Parent = FakeCharacter
- if Position then
- AttachmentA.Position = Position
- end
- game:GetService("RunService").Heartbeat:connect(function()
- Part0.Velocity = Vector3.new(0,35,0)
- end)
- end
- function StickParts(Part0,Part1,Angle,Position)
- Part0:FindFirstChildWhichIsA("Weld"):Destroy()
- Part0:FindFirstChildWhichIsA("SpecialMesh"):Destroy()
- local AlignPos = Instance.new('AlignPosition', Part1)
- AlignPos.ApplyAtCenterOfMass = true;
- AlignPos.MaxForce = 67752;
- AlignPos.MaxVelocity = math.huge/9e110;
- AlignPos.ReactionForceEnabled = false;
- AlignPos.Responsiveness = 200;
- AlignPos.RigidityEnabled = false;
- local AlignOri = Instance.new('AlignOrientation', Part1)
- AlignOri.MaxAngularVelocity = math.huge/9e110;
- AlignOri.MaxTorque = 67752;
- AlignOri.PrimaryAxisOnly = false;
- AlignOri.ReactionTorqueEnabled = false;
- AlignOri.Responsiveness = 200;
- AlignOri.RigidityEnabled = false;
- local AttachmentA=Instance.new('Attachment',Part1)
- local AttachmentB=Instance.new('Attachment',Part0)
- local AttachmentC=Instance.new('Attachment',Part1)
- local AttachmentD=Instance.new('Attachment',Part0)
- AlignPos.Attachment1 = AttachmentA;
- AlignPos.Attachment0 = AttachmentB;
- AlignOri.Attachment1 = AttachmentC;
- AlignOri.Attachment0 = AttachmentD;
- AttachmentC.Orientation = Angle
- AttachmentC.Name = "Orientation"
- Part0.Parent = FakeCharacter
- if Position then
- AttachmentA.Position = Position
- end
- s = game:GetService("RunService").Heartbeat:connect(function()
- Part0.Velocity = Vector3.new(0,50,0)
- end)
- spawn(function()
- while true do
- wait()
- if HumanDied then
- s:Disconnect()
- break
- end
- end
- end)
- end
- for i, part in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do
- if part:IsA("Accessory") then
- if part.Handle.Size == Vector3.new(1, 1, 2) then
- if FakeLimbs["Right Arm"] == nil then
- FakeLimbs["Right Arm"] = part.Handle
- elseif FakeLimbs["Left Arm"] == nil then
- FakeLimbs["Left Arm"] = part.Handle
- elseif FakeLimbs["Right Leg"] == nil then
- FakeLimbs["Right Leg"] = part.Handle
- elseif FakeLimbs["Left Leg"] == nil then
- FakeLimbs["Left Leg"] = part.Handle
- elseif FakeLimbs["Torso1"] == nil then
- FakeLimbs["Torso1"] = part.Handle
- elseif FakeLimbs["Torso2"] == nil then
- FakeLimbs["Torso2"] = part.Handle
- end
- elseif part.Handle.Size == Vector3.new(1,1,1) then
- FakeLimbs["Head"] = part.Handle
- end
- end
- end
- game.Players.LocalPlayer.Character.Archivable = true
- -- Kill Player
- FakeCharacter = MFolder
- FakeCharacter.Parent = workspace
- local m4 = FakeCharacter.M4
- do
- Bypass = "death"
- if not Bypass then Bypass = "limbs" end
- HumanDied = false
- CountSCIFIMOVIELOL = 1
- function SCIFIMOVIELOL(Part0,Part1,Position,Angle)
- local AlignPos = Instance.new('AlignPosition', Part1); AlignPos.Name = "AliP_"..CountSCIFIMOVIELOL
- AlignPos.ApplyAtCenterOfMass = true;
- AlignPos.MaxForce = 67752;
- AlignPos.MaxVelocity = math.huge/9e110;
- AlignPos.ReactionForceEnabled = false;
- AlignPos.Responsiveness = 200;
- AlignPos.RigidityEnabled = false;
- local AlignOri = Instance.new('AlignOrientation', Part1); AlignOri.Name = "AliO_"..CountSCIFIMOVIELOL
- AlignOri.MaxAngularVelocity = math.huge/9e110;
- AlignOri.MaxTorque = 67752;
- AlignOri.PrimaryAxisOnly = false;
- AlignOri.ReactionTorqueEnabled = false;
- AlignOri.Responsiveness = 200;
- AlignOri.RigidityEnabled = false;
- local AttachmentA=Instance.new('Attachment',Part1); AttachmentA.Name = "AthP_"..CountSCIFIMOVIELOL
- local AttachmentB=Instance.new('Attachment',Part0); AttachmentB.Name = "AthP_"..CountSCIFIMOVIELOL
- local AttachmentC=Instance.new('Attachment',Part1); AttachmentC.Name = "AthO_"..CountSCIFIMOVIELOL
- local AttachmentD=Instance.new('Attachment',Part0); AttachmentD.Name = "AthO_"..CountSCIFIMOVIELOL
- AttachmentC.Orientation = Angle
- AttachmentA.Position = Position
- AttachmentC.Name = "Orientation"
- AlignPos.Attachment1 = AttachmentA;
- AlignPos.Attachment0 = AttachmentB;
- AlignOri.Attachment1 = AttachmentC;
- AlignOri.Attachment0 = AttachmentD;
- CountSCIFIMOVIELOL = CountSCIFIMOVIELOL + 1
- game:GetService("RunService").Heartbeat:connect(function()
- Part0.Velocity = Vector3.new(0,35,0)
- end)
- end
- coroutine.wrap(function()
- local player = game.Players.LocalPlayer
- local char = player.Character or player.CharacterAdded:wait()
- if sethiddenproperty then
- while true do
- game:GetService("RunService").RenderStepped:Wait()
- settings().Physics.AllowSleep = false
- local TBL = game:GetService("Players"):GetChildren()
- for _ = 1,#TBL do local Players = TBL[_]
- if Players ~= game:GetService("Players").LocalPlayer then
- Players.MaximumSimulationRadius = 0
- sethiddenproperty(Players,"SimulationRadius",0)
- end
- end
- game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge,math.huge)
- sethiddenproperty(game:GetService("Players").LocalPlayer,"SimulationRadius",math.pow(math.huge,math.huge)*math.huge)
- if HumanDied then break end
- end
- else
- while true do
- game:GetService("RunService").RenderStepped:Wait()
- settings().Physics.AllowSleep = false
- local TBL = game:GetService("Players"):GetChildren()
- for _ = 1,#TBL do local Players = TBL[_]
- if Players ~= game:GetService("Players").LocalPlayer then
- Players.MaximumSimulationRadius = 0
- end
- end
- game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge,math.huge)
- if HumanDied then break end
- end
- end
- end)()
- if game:GetService("Players").LocalPlayer.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then
- if Bypass == "limbs" then --------------------------------------------------------------------------------------------------------------------
- game:GetService("Players").LocalPlayer["Character"].Archivable = true
- local CloneChar = game:GetService("Players").LocalPlayer["Character"]:Clone()
- CloneChar.Parent = workspace
- CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,2,0)
- wait()
- CloneChar.Humanoid.BreakJointsOnDeath = false
- workspace.Camera.CameraSubject = CloneChar.Humanoid
- CloneChar.Name = "non"
- CloneChar.Humanoid.DisplayDistanceType = "None"
- if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end
- if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end
- local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name]
- DeadChar.HumanoidRootPart:Destroy()
- local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1
- local CONVEC
- local function VECTORUNIT()
- if HumanDied then CONVEC:Disconnect(); return end
- local lookVec = workspace.Camera.CFrame.lookVector
- local Root = CloneChar["HumanoidRootPart"]
- LVecPart.Position = Root.Position
- LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999))
- end
- CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT)
- local CONDOWN
- local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false
- local function KEYDOWN(_,Processed)
- if HumanDied then CONDOWN:Disconnect(); return end
- if Processed ~= true then
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = true end
- if Key == Enum.KeyCode.A then
- ADown = true end
- if Key == Enum.KeyCode.S then
- SDown = true end
- if Key == Enum.KeyCode.D then
- DDown = true end
- if Key == Enum.KeyCode.Space then
- SpaceDown = true end end end
- CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN)
- local CONUP
- local function KEYUP(_)
- if HumanDied then CONUP:Disconnect(); return end
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = false end
- if Key == Enum.KeyCode.A then
- ADown = false end
- if Key == Enum.KeyCode.S then
- SDown = false end
- if Key == Enum.KeyCode.D then
- DDown = false end
- if Key == Enum.KeyCode.Space then
- SpaceDown = false end end
- CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP)
- local function MoveClone(X,Y,Z)
- VEL = 1
- LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z)
- workspace["non"].Humanoid.WalkToPoint = LVecPart.Position
- wait()
- VEL = 0
- end
- coroutine.wrap(function()
- while true do game:GetService("RunService").RenderStepped:Wait()
- if HumanDied then break end
- if WDown then MoveClone(0,0,1e4) end
- if ADown then MoveClone(1e4,0,0) end
- if SDown then MoveClone(0,0,-1e4) end
- if DDown then MoveClone(-1e4,0,0) end
- if SpaceDown then CloneChar["Humanoid"].Jump = true end
- if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then
- workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end
- end
- end)()
- local con
- function UnCollide()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, CloneChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- for _,Parts in next, DeadChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- end
- con = game:GetService("RunService").Stepped:Connect(UnCollide)
- local resetBindable = Instance.new("BindableEvent")
- resetBindable.Event:connect(function()
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- pcall(function()
- CloneChar.Humanoid.Health = 0
- DeadChar.Humanoid.Health = 0
- end)
- end)
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable)
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 or not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then
- HumanDied = true
- FakeCharacter:Destroy()
- script:Destroy()
- pcall(function()
- game.Players.LocalPlayer.Character = CloneChar
- CloneChar:Destroy()
- game.Players.LocalPlayer.Character = DeadChar
- if resetBindable then
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- end
- DeadChar.Humanoid.Health = 0
- end)
- break
- end
- end
- end)()
- SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Torso"],CloneChar["Torso"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Left Arm"],CloneChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Right Arm"],CloneChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Left Leg"],CloneChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Right Leg"],CloneChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if HumanDied then break end
- DeadChar["Torso"].CFrame = CloneChar["Torso"].CFrame
- end
- end)()
- for _,BodyParts in next, CloneChar:GetDescendants() do
- if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then
- BodyParts.Transparency = 1 end end
- DeadChar.Torso["Left Shoulder"]:Destroy()
- DeadChar.Torso["Right Shoulder"]:Destroy()
- DeadChar.Torso["Left Hip"]:Destroy()
- DeadChar.Torso["Right Hip"]:Destroy()
- elseif Bypass == "death" then --------------------------------------------------------------------------------------------------------------------
- game:GetService("Players").LocalPlayer["Character"].Archivable = true
- local CloneChar = game:GetService("Players").LocalPlayer["Character"]:Clone()
- game:GetService("Players").LocalPlayer["Character"].Humanoid.WalkSpeed = 0
- game:GetService("Players").LocalPlayer["Character"].Humanoid.JumpPower = 0
- game:GetService("Players").LocalPlayer["Character"].Humanoid.AutoRotate = false
- local FalseChar = Instance.new("Model", workspace); FalseChar.Name = ""
- Instance.new("Part",FalseChar).Name = "Head"
- Instance.new("Part",FalseChar).Name = "Torso"
- Instance.new("Humanoid",FalseChar).Name = "Humanoid"
- game:GetService("Players").LocalPlayer["Character"] = FalseChar
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Name = "FalseHumanoid"
- local Clone = game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Clone()
- Clone.Parent = game:GetService("Players").LocalPlayer["Character"]
- Clone.Name = "Humanoid"
- game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Destroy()
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0
- game:GetService("Players").LocalPlayer["Character"] = workspace[game:GetService("Players").LocalPlayer.Name]
- StickParts(FakeLimbs["Head"],FakeCharacter.Head,Vector3.new(0,0,0))
- StickParts(FakeLimbs["Right Arm"],FakeCharacter["Right Arm"],Vector3.new(90,0,0))
- StickParts(FakeLimbs["Left Arm"],FakeCharacter["Left Arm"],Vector3.new(90,0,0))
- StickParts(FakeLimbs["Right Leg"],FakeCharacter["Right Leg"],Vector3.new(90,0,0))
- StickParts(FakeLimbs["Left Leg"],FakeCharacter["Left Leg"],Vector3.new(90,0,0))
- StickParts(FakeLimbs["Torso1"],FakeCharacter.Torso,Vector3.new(90,0,0),Vector3.new(0.5,0,0))
- StickParts(FakeLimbs["Torso2"],FakeCharacter.Torso,Vector3.new(90,0,0),Vector3.new(-0.5,0,0))
- FakeCharacter.HumanoidRootPart.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
- wait(5.65)
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0
- CloneChar.Parent = workspace
- CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,2,0)
- wait()
- CloneChar.Humanoid.BreakJointsOnDeath = false
- workspace.Camera.CameraSubject = CloneChar.Humanoid
- CloneChar.Name = "non"
- CloneChar.Humanoid.DisplayDistanceType = "None"
- if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end
- if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end
- FalseChar:Destroy()
- local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name]
- local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1
- local CONVEC
- local function VECTORUNIT()
- if HumanDied then CONVEC:Disconnect(); return end
- local lookVec = workspace.Camera.CFrame.lookVector
- local Root = CloneChar["HumanoidRootPart"]
- LVecPart.Position = Root.Position
- LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999))
- end
- CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT)
- local CONDOWN
- local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false
- local function KEYDOWN(_,Processed)
- if HumanDied then CONDOWN:Disconnect(); return end
- if Processed ~= true then
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = true end
- if Key == Enum.KeyCode.A then
- ADown = true end
- if Key == Enum.KeyCode.S then
- SDown = true end
- if Key == Enum.KeyCode.D then
- DDown = true end
- if Key == Enum.KeyCode.Space then
- SpaceDown = true end end end
- CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN)
- local CONUP
- local function KEYUP(_)
- if HumanDied then CONUP:Disconnect(); return end
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = false end
- if Key == Enum.KeyCode.A then
- ADown = false end
- if Key == Enum.KeyCode.S then
- SDown = false end
- if Key == Enum.KeyCode.D then
- DDown = false end
- if Key == Enum.KeyCode.Space then
- SpaceDown = false end end
- CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP)
- local function MoveClone(X,Y,Z)
- LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z)
- workspace["non"].Humanoid.WalkToPoint = LVecPart.Position
- end
- coroutine.wrap(function()
- while true do game:GetService("RunService").RenderStepped:Wait()
- if HumanDied then break end
- if WDown then MoveClone(0,0,1e4) end
- if ADown then MoveClone(1e4,0,0) end
- if SDown then MoveClone(0,0,-1e4) end
- if DDown then MoveClone(-1e4,0,0) end
- if SpaceDown then CloneChar["Humanoid"].Jump = true end
- if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then
- CloneChar.Humanoid.WalkToPoint = CloneChar.HumanoidRootPart.Position end
- end
- end)()
- local con
- function UnCollide()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, CloneChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- HumanRoot.CanCollide = false
- Parts.CanCollide = false
- end
- end
- for _,Parts in next, DeadChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- HumanRoot.CanCollide = false
- end
- end
- end
- con = game:GetService("RunService").Stepped:Connect(UnCollide)
- local resetBindable = Instance.new("BindableEvent")
- resetBindable.Event:connect(function()
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- CloneChar.Humanoid.Health = 0
- end)
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable)
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 then
- HumanDied = true
- pcall(function()
- game.Players.LocalPlayer.Character = CloneChar
- CloneChar:Destroy()
- game.Players.LocalPlayer.Character = DeadChar
- if resetBindable then
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- end
- DeadChar.Humanoid.Health = 0
- end)
- break
- end
- end
- end)()
- SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Torso"],CloneChar["Torso"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Left Arm"],CloneChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Right Arm"],CloneChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Left Leg"],CloneChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["Right Leg"],CloneChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- for _,v in next, DeadChar:GetChildren() do
- if v:IsA("Accessory") then
- if v.Name == "WDW_FoamFinger" then
- GunHat = v.Handle
- SCIFIMOVIELOL(GunHat,m4,Vector3.new(0,0,0),Vector3.new(0,-90,-90))
- elseif v.Name == "MediHood" then
- SoldierHelm = v.Handle
- SCIFIMOVIELOL(SoldierHelm,FakeCharacter.Head,Vector3.new(0, 0.44308090209961, -0.0026588439941406),Vector3.new(0,0,0))
- print("lol")
- end
- end
- end
- for _,BodyParts in next, CloneChar:GetDescendants() do
- if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then
- BodyParts.Transparency = 1 end end
- elseif Bypass == "hats" then
- game:GetService("Players").LocalPlayer["Character"].Archivable = true
- local DeadChar = game.Players.LocalPlayer.Character
- DeadChar.Name = "non"
- local HatPosition = Vector3.new(0,0,0)
- local HatName = "MediHood"
- local HatsLimb = {
- Rarm = DeadChar:FindFirstChild("Hat1"),
- Larm = DeadChar:FindFirstChild("Pink Hair"),
- Rleg = DeadChar:FindFirstChild("Robloxclassicred"),
- Lleg = DeadChar:FindFirstChild("Kate Hair"),
- Torso1 = DeadChar:FindFirstChild("Pal Hair"),
- Torso2 = DeadChar:FindFirstChild("LavanderHair")
- }
- HatName = DeadChar:FindFirstChild(HatName)
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then
- HumanDied = true
- pcall(function()
- if resetBindable then
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- end
- DeadChar.Humanoid.Health = 0
- end)
- break
- end
- end
- end)()
- local con
- function UnCollide()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, DeadChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- end
- local con2
- function UnCollide2()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, FakeCharacter:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- end
- con = game:GetService("RunService").Stepped:Connect(UnCollide)
- con2 = game:GetService("RunService").Stepped:Connect(UnCollide2)
- SCIFIMOVIELOL(HatName.Handle,DeadChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(HatsLimb.Torso1.Handle,DeadChar["Torso"],Vector3.new(0.5,0,0),Vector3.new(90,0,0))
- SCIFIMOVIELOL(HatsLimb.Torso2.Handle,DeadChar["Torso"],Vector3.new(-0.5,0,0),Vector3.new(90,0,0))
- SCIFIMOVIELOL(HatsLimb.Larm.Handle,DeadChar["Left Arm"],Vector3.new(0,0,0),Vector3.new(90,0,0))
- SCIFIMOVIELOL(HatsLimb.Rarm.Handle,DeadChar["Right Arm"],Vector3.new(0,0,0),Vector3.new(90,0,0))
- SCIFIMOVIELOL(HatsLimb.Lleg.Handle,DeadChar["Left Leg"],Vector3.new(0,0,0),Vector3.new(90,0,0))
- SCIFIMOVIELOL(HatsLimb.Rleg.Handle,DeadChar["Right Leg"],Vector3.new(0,0,0),Vector3.new(90,0,0))
- for i,v in pairs(HatsLimb) do
- v.Handle:FindFirstChild("AccessoryWeld"):Destroy()
- if v.Handle:FindFirstChild("Mesh") then v.Handle:FindFirstChild("Mesh"):Destroy() end
- if v.Handle:FindFirstChild("SpecialMesh") then v.Handle:FindFirstChild("SpecialMesh"):Destroy() end
- end
- HatName.Handle:FindFirstChild("AccessoryWeld"):Destroy()
- end
- else
- if Bypass == "limbs" then --------------------------------------------------------------------------------------------------------------------
- game:GetService("Players").LocalPlayer["Character"].Archivable = true
- local CloneChar = game:GetObjects("rbxassetid://5227463276")[1]
- CloneChar.Parent = workspace
- CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,0.5,0.1)
- CloneChar.Humanoid.BreakJointsOnDeath = false
- workspace.Camera.CameraSubject = CloneChar.Humanoid
- CloneChar.Name = "non"
- CloneChar.Humanoid.DisplayDistanceType = "None"
- if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end
- if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end
- local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name]
- DeadChar.HumanoidRootPart:Destroy()
- local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1
- local CONVEC
- local function VECTORUNIT()
- if HumanDied then CONVEC:Disconnect(); return end
- local lookVec = workspace.Camera.CFrame.lookVector
- local Root = CloneChar["HumanoidRootPart"]
- LVecPart.Position = Root.Position
- LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999))
- end
- CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT)
- local CONDOWN
- local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false
- local function KEYDOWN(_,Processed)
- if HumanDied then CONDOWN:Disconnect(); return end
- if Processed ~= true then
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = true end
- if Key == Enum.KeyCode.A then
- ADown = true end
- if Key == Enum.KeyCode.S then
- SDown = true end
- if Key == Enum.KeyCode.D then
- DDown = true end
- if Key == Enum.KeyCode.Space then
- SpaceDown = true end end end
- CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN)
- local CONUP
- local function KEYUP(_)
- if HumanDied then CONUP:Disconnect(); return end
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = false end
- if Key == Enum.KeyCode.A then
- ADown = false end
- if Key == Enum.KeyCode.S then
- SDown = false end
- if Key == Enum.KeyCode.D then
- DDown = false end
- if Key == Enum.KeyCode.Space then
- SpaceDown = false end end
- CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP)
- local function MoveClone(X,Y,Z)
- LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z)
- workspace["non"].Humanoid.WalkToPoint = LVecPart.Position
- end
- coroutine.wrap(function()
- while true do game:GetService("RunService").RenderStepped:Wait()
- if HumanDied then break end
- if WDown then MoveClone(0,0,1e4) end
- if ADown then MoveClone(1e4,0,0) end
- if SDown then MoveClone(0,0,-1e4) end
- if DDown then MoveClone(-1e4,0,0) end
- if SpaceDown then CloneChar["Humanoid"].Jump = true end
- if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then
- workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end
- end
- end)()
- local con
- function UnCollide()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, CloneChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- for _,Parts in next, DeadChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- end
- con = game:GetService("RunService").Stepped:Connect(UnCollide)
- local resetBindable = Instance.new("BindableEvent")
- resetBindable.Event:connect(function()
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- CloneChar.Humanoid.Health = 0
- end)
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable)
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 or not DeadChar or not DeadChar:FindFirstChild("Head") or not DeadChar:FindFirstChild("Humanoid") or DeadChar:FindFirstChild("Humanoid").Health <= 0 then
- HumanDied = true
- pcall(function()
- game.Players.LocalPlayer.Character = CloneChar
- CloneChar:Destroy()
- game.Players.LocalPlayer.Character = DeadChar
- if resetBindable then
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- end
- DeadChar.Humanoid.Health = 0
- end)
- break
- end
- end
- end)()
- for _,v in next, DeadChar:GetChildren() do
- if v:IsA("Accessory") then
- v:Clone().Parent = CloneChar
- end
- end
- for _,v in next, DeadChar:GetDescendants() do
- if v:IsA("Motor6D") and v.Name ~= "Neck" then
- v:Destroy()
- end
- end
- SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["UpperTorso"],CloneChar["Torso"],Vector3.new(0,0.2,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LowerTorso"],CloneChar["Torso"],Vector3.new(0,-0.78,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftUpperArm"],CloneChar["Left Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftLowerArm"],CloneChar["Left Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftHand"],CloneChar["Left Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightUpperArm"],CloneChar["Right Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightLowerArm"],CloneChar["Right Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightHand"],CloneChar["Right Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftUpperLeg"],CloneChar["Left Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftLowerLeg"],CloneChar["Left Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftFoot"],CloneChar["Left Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightUpperLeg"],CloneChar["Right Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightLowerLeg"],CloneChar["Right Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightFoot"],CloneChar["Right Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0))
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if HumanDied then break end
- DeadChar["UpperTorso"].CFrame = CloneChar["Torso"].CFrame * CFrame.new(0,0.2,0)
- end
- end)()
- for _,v in next, DeadChar:GetChildren() do
- if v:IsA("Accessory") then
- SCIFIMOVIELOL(v.Handle,CloneChar[v.Name].Handle,Vector3.new(0,0,0),Vector3.new(0,0,0))
- end
- end
- for _,BodyParts in next, CloneChar:GetDescendants() do
- if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then
- BodyParts.Transparency = 1 end end
- elseif Bypass == "death" then --------------------------------------------------------------------------------------------------------------------
- game:GetService("Players").LocalPlayer["Character"].Archivable = true
- local CloneChar = game:GetObjects("rbxassetid://5227463276")[1]
- game:GetService("Players").LocalPlayer["Character"].Humanoid.WalkSpeed = 0
- game:GetService("Players").LocalPlayer["Character"].Humanoid.JumpPower = 0
- game:GetService("Players").LocalPlayer["Character"].Humanoid.AutoRotate = false
- local FalseChar = Instance.new("Model", workspace); FalseChar.Name = ""
- Instance.new("Part",FalseChar).Name = "Head"
- Instance.new("Part",FalseChar).Name = "UpperTorso"
- Instance.new("Humanoid",FalseChar).Name = "Humanoid"
- game:GetService("Players").LocalPlayer["Character"] = FalseChar
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Name = "FalseHumanoid"
- local Clone = game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Clone()
- Clone.Parent = game:GetService("Players").LocalPlayer["Character"]
- Clone.Name = "Humanoid"
- game:GetService("Players").LocalPlayer["Character"]:FindFirstChild("FalseHumanoid"):Destroy()
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0
- game:GetService("Players").LocalPlayer["Character"] = workspace[game:GetService("Players").LocalPlayer.Name]
- wait(5.65)
- game:GetService("Players").LocalPlayer["Character"].Humanoid.Health = 0
- CloneChar.Parent = workspace
- CloneChar.HumanoidRootPart.CFrame = game:GetService("Players").LocalPlayer["Character"].HumanoidRootPart.CFrame * CFrame.new(0,0.5,0.1)
- wait()
- CloneChar.Humanoid.BreakJointsOnDeath = false
- workspace.Camera.CameraSubject = CloneChar.Humanoid
- CloneChar.Name = "non"
- CloneChar.Humanoid.DisplayDistanceType = "None"
- if CloneChar.Head:FindFirstChild("face") then CloneChar.Head:FindFirstChild("face"):Destroy() end
- if workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face") then workspace[game:GetService("Players").LocalPlayer.Name].Head:FindFirstChild("face").Parent = CloneChar.Head end
- FalseChar:Destroy()
- local DeadChar = workspace[game:GetService("Players").LocalPlayer.Name]
- local LVecPart = Instance.new("Part", workspace) LVecPart.CanCollide = false LVecPart.Transparency = 1
- local CONVEC
- local function VECTORUNIT()
- if HumanDied then CONVEC:Disconnect(); return end
- local lookVec = workspace.Camera.CFrame.lookVector
- local Root = CloneChar["HumanoidRootPart"]
- LVecPart.Position = Root.Position
- LVecPart.CFrame = CFrame.new(LVecPart.Position, Vector3.new(lookVec.X * 9999, lookVec.Y, lookVec.Z * 9999))
- end
- CONVEC = game:GetService("RunService").Heartbeat:Connect(VECTORUNIT)
- local CONDOWN
- local WDown, ADown, SDown, DDown, SpaceDown = false, false, false, false, false
- local function KEYDOWN(_,Processed)
- if HumanDied then CONDOWN:Disconnect(); return end
- if Processed ~= true then
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = true end
- if Key == Enum.KeyCode.A then
- ADown = true end
- if Key == Enum.KeyCode.S then
- SDown = true end
- if Key == Enum.KeyCode.D then
- DDown = true end
- if Key == Enum.KeyCode.Space then
- SpaceDown = true end end end
- CONDOWN = game:GetService("UserInputService").InputBegan:Connect(KEYDOWN)
- local CONUP
- local function KEYUP(_)
- if HumanDied then CONUP:Disconnect(); return end
- local Key = _.KeyCode
- if Key == Enum.KeyCode.W then
- WDown = false end
- if Key == Enum.KeyCode.A then
- ADown = false end
- if Key == Enum.KeyCode.S then
- SDown = false end
- if Key == Enum.KeyCode.D then
- DDown = false end
- if Key == Enum.KeyCode.Space then
- SpaceDown = false end end
- CONUP = game:GetService("UserInputService").InputEnded:Connect(KEYUP)
- local function MoveClone(X,Y,Z)
- LVecPart.CFrame = LVecPart.CFrame * CFrame.new(-X,Y,-Z)
- workspace["non"].Humanoid.WalkToPoint = LVecPart.Position
- end
- coroutine.wrap(function()
- while true do game:GetService("RunService").RenderStepped:Wait()
- if HumanDied then break end
- if WDown then MoveClone(0,0,1e4) end
- if ADown then MoveClone(1e4,0,0) end
- if SDown then MoveClone(0,0,-1e4) end
- if DDown then MoveClone(-1e4,0,0) end
- if SpaceDown then CloneChar["Humanoid"].Jump = true end
- if WDown ~= true and ADown ~= true and SDown ~= true and DDown ~= true then
- workspace["non"].Humanoid.WalkToPoint = workspace["non"].HumanoidRootPart.Position end
- end
- end)()
- local con
- function UnCollide()
- if HumanDied then con:Disconnect(); return end
- for _,Parts in next, CloneChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- for _,Parts in next, DeadChar:GetDescendants() do
- if Parts:IsA("BasePart") then
- Parts.CanCollide = false
- end
- end
- end
- con = game:GetService("RunService").Stepped:Connect(UnCollide)
- local resetBindable = Instance.new("BindableEvent")
- resetBindable.Event:connect(function()
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- CloneChar.Humanoid.Health = 0
- end)
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", resetBindable)
- coroutine.wrap(function()
- while true do
- game:GetService("RunService").RenderStepped:wait()
- if not CloneChar or not CloneChar:FindFirstChild("Head") or not CloneChar:FindFirstChild("Humanoid") or CloneChar:FindFirstChild("Humanoid").Health <= 0 then
- HumanDied = true
- pcall(function()
- game.Players.LocalPlayer.Character = CloneChar
- CloneChar:Destroy()
- game.Players.LocalPlayer.Character = DeadChar
- if resetBindable then
- game:GetService("StarterGui"):SetCore("ResetButtonCallback", true)
- resetBindable:Destroy()
- end
- DeadChar.Humanoid.Health = 0
- end)
- break
- end
- end
- end)()
- for _,v in next, DeadChar:GetChildren() do
- if v:IsA("Accessory") then
- v:Clone().Parent = CloneChar
- end
- end
- SCIFIMOVIELOL(DeadChar["Head"],CloneChar["Head"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["UpperTorso"],CloneChar["Torso"],Vector3.new(0,0.2,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LowerTorso"],CloneChar["Torso"],Vector3.new(0,-0.78,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftUpperArm"],CloneChar["Left Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftLowerArm"],CloneChar["Left Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftHand"],CloneChar["Left Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightUpperArm"],CloneChar["Right Arm"],Vector3.new(0,0.375,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightLowerArm"],CloneChar["Right Arm"],Vector3.new(0,-0.215,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightHand"],CloneChar["Right Arm"],Vector3.new(0,-0.825,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftUpperLeg"],CloneChar["Left Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftLowerLeg"],CloneChar["Left Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["LeftFoot"],CloneChar["Left Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightUpperLeg"],CloneChar["Right Leg"],Vector3.new(0,0.575,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightLowerLeg"],CloneChar["Right Leg"],Vector3.new(0,-0.137,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["RightFoot"],CloneChar["Right Leg"],Vector3.new(0,-0.787,0),Vector3.new(0,0,0))
- SCIFIMOVIELOL(DeadChar["HumanoidRootPart"],CloneChar["HumanoidRootPart"],Vector3.new(0,0,0),Vector3.new(0,0,0))
- for _,v in next, DeadChar:GetChildren() do
- if v:IsA("Accessory") then
- SCIFIMOVIELOL(v.Handle,CloneChar[v.Name].Handle,Vector3.new(0,0,0),Vector3.new(0,0,0))
- end
- end
- for _,BodyParts in next, CloneChar:GetDescendants() do
- if BodyParts:IsA("BasePart") or BodyParts:IsA("Part") then
- BodyParts.Transparency = 1 end end
- if DeadChar.Head:FindFirstChild("Neck") then
- game.Players.LocalPlayer.Character:BreakJoints()
- end
- end
- end
- end
- local CloneChar = workspace.non
- game.Players.LocalPlayer.Character.Parent = CloneChar
- local MakeNewAnim = function(id)
- local NewAnim = Instance.new("Animation")
- NewAnim.AnimationId = id
- return {NewAnim,id}
- end
- function CreoFEFakeAnimations(Character)
- spawn(function()
- local Humanoid = Character:FindFirstChildWhichIsA("Humanoid")
- local HRP = Character:WaitForChild("HumanoidRootPart")
- local Walk = MakeNewAnim("http://www.roblox.com/asset/?id=180426354")
- local Idle = MakeNewAnim("http://www.roblox.com/asset/?id=180435571")
- local Jump = MakeNewAnim("http://www.roblox.com/asset/?id=125750702")
- local Fall = MakeNewAnim("http://www.roblox.com/asset/?id=180436148")
- local anim = Idle[1]
- local AnimId = Idle[2]
- local Anim = Humanoid:LoadAnimation(anim)
- Anim.Priority = Enum.AnimationPriority.Core
- local rayCast = function(Pos, Dir, Max, Ignore)
- return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), (Ignore))
- end
- spawn(function()
- while HumanDied ~= true do
- wait()
- local hitfloor = rayCast(HRP.Position, CFrame.new(HRP.Position, HRP.Position - Vector3.new(0, 1, 0)).lookVector, 4, Character)
- local oldAnim = Anim
- local oldAnimId = AnimId
- if HRP.Velocity.Y > 0 and hitfloor == nil then
- Anim = Humanoid:LoadAnimation(Jump[1])
- AnimId = Jump[2]
- elseif HRP.Velocity.Y < 0 and hitfloor == nil then
- Anim = Humanoid:LoadAnimation(Fall[1])
- AnimId = Fall[2]
- elseif (HRP.Velocity.X + HRP.Velocity.Z)/2 > 0.1 or (HRP.Velocity.X + HRP.Velocity.Z)/2 < -0.1 then
- Anim = Humanoid:LoadAnimation(Walk[1])
- AnimId = Walk[2]
- else
- Anim = Humanoid:LoadAnimation(Idle[1])
- AnimId = Idle[2]
- end
- if AnimId ~= oldAnimId then
- oldAnim:Stop()
- Anim:Play()
- end
- end
- end)
- end)
- end
- CreoFEFakeAnimations(CloneChar)
- CreoFEFakeAnimations(FakeCharacter)
- s = game:GetService("RunService").Heartbeat:connect(function()
- game.Players.LocalPlayer.Character.HumanoidRootPart.Velocity = Vector3.new(0,35,0)
- end)
- task.spawn(function()
- while true do
- wait()
- if HumanDied == true then
- s:Disconnect()
- break
- end
- end
- end)
- local SHOW = Instance.new("SelectionBox",workspace)
- SHOW.Adornee = game.Players.LocalPlayer.Character.HumanoidRootPart
- --- <<Start Soldier>> --
- bambam = Instance.new("BodyThrust")
- bambam.Parent = HumanRoot
- bambam.Force = Vector3.new(0,0,0)
- ------Body Variables------
- local myHuman = FakeCharacter.Humanoid
- local myTorso = FakeCharacter.Torso
- local myHead = FakeCharacter.Head
- local myFace = myHead.face
- local neck = myTorso.Neck
- local headWeld = myTorso["Head Weld"]
- local rArm = FakeCharacter["Right Arm"]
- local lArm = FakeCharacter["Left Arm"]
- local lShoulder = myTorso["Left Shoulder"]
- local rShoulder = myTorso["Right Shoulder"]
- local lArmWeld = myTorso["Left Arm Weld"]
- local rArmWeld = myTorso["Right Arm Weld"]
- local gyro = FakeCharacter.HumanoidRootPart.BodyGyro
- ------M4 Variables------
- local m4 = FakeCharacter.M4
- if GunHat then
- GunHat.Parent = FakeCharacter
- end
- if SoldierHelm then
- SoldierHelm.Parent = FakeCharacter
- FakeCharacter.Mask.Transparency = 1
- FakeLimbs["Head"].Transparency = 1
- FakeCharacter.fasthelmet.Transparency = 1
- end
- local m4Weld = m4["M4 Weld"]
- local barrel = FakeCharacter.Barrel
- local aimer = FakeCharacter.Aimer
- local aimerWeld = aimer["Aimer Weld"]
- local fullMag = 30
- local mag = fullMag
- local flash = barrel.Attachment.Flash
- ------Knife variables------
- local knife = FakeCharacter.Knife
- local knifeWeld = knife["Knife Weld"]
- ------Grenade variables------
- local grenade = FakeCharacter.Grenade
- ------Sounds------
- local equipSound = m4.Equip
- local fireSound = m4.Fire
- local reloadSound = m4.Reload
- local knifeEquipSound = knife.EquipSound
- local knifeAttackSound = knife.AttackSound
- local knifeStabSound = knife.StabSound
- local hurtSound = myHead.Hurt
- local pinSound = grenade.Pin
- ------Animations------
- local stabAnimation = myHuman:LoadAnimation(FakeCharacter.Stab)
- stabAnimation.Priority = Enum.AnimationPriority.Action
- local throwAnimation = myHuman:LoadAnimation(FakeCharacter.ThrowAnimation)
- throwAnimation.Priority = Enum.AnimationPriority.Action
- throwAnimation.Looped = false
- local reloadAnimation = myHuman:LoadAnimation(FakeCharacter.Reload)
- reloadAnimation.Priority = Enum.AnimationPriority.Action
- ------Status------
- local reloading = false
- local weaponAimed = false
- local weaponCool = true
- local m4Equipped = false
- local knifeEquipped = false
- local grenadeCool = true
- local currentTarget = nil
- local status = "Idle"
- spawn(function()
- while true do
- wait()
- if currentTarget == nil or weaponCool == false then
- HumanRoot.Position = FakeCharacter.Torso.Position
- bambam.Force = Vector3.new(0,0,0)
- end
- end
- end)
- local faces = {Idle = "http://www.roblox.com/asset/?id=23219775",
- Attacking = "http://www.roblox.com/asset/?id=286688505",
- Hunting = "http://www.roblox.com/asset/?id=209715003 ",
- Hurt = "http://www.roblox.com/asset/?id=258192246",
- Dead = "http://www.roblox.com/asset/?id=15426038"}
- local gunPointedAt = nil
- ------Target/Ally Tracking------
- local allies = {"Civilian"}
- local potentialTargets = {}
- local activeAllies = {}
- local team = FakeCharacter.Settings.Team.Value
- local attackPlayers = FakeCharacter.Settings.AttackPlayers.Value
- function spawner(func,...)
- local co = coroutine.wrap(func)
- co(...)
- end
- function checkDist(part1,part2)
- return (part1.Position - part2.Position).Magnitude
- end
- function checkSight(target)
- local ray = Ray.new(barrel.Position, (target.Position - barrel.Position).Unit * 75)
- local part,position = workspace:FindPartOnRayWithIgnoreList(ray, {FakeCharacter})
- local ray2 = Ray.new(myTorso.Position, (target.Position - myTorso.Position).Unit * 75)
- local part2,position2 = workspace:FindPartOnRayWithIgnoreList(ray2, {FakeCharacter})
- if part and part2 then
- if part:IsDescendantOf(target.Parent) and part2:IsDescendantOf(target.Parent) then
- return true
- end
- end
- return false
- end
- function updateFace()
- if myFace.Texture ~= faces.Dead and myFace.Texture ~= faces.Hurt then
- myFace.Texture = faces[status]
- end
- end
- function findTarget()
- local dist = FakeCharacter.Settings.DetectionRange.Value
- local target = nil
- potentialTargets = {}
- local seeTargets = {}
- for _,v in ipairs(workspace:GetChildren()) do
- local human = v:FindFirstChild("Humanoid")
- local torso = v:FindFirstChild("HumanoidRootPart") or v:FindFirstChild("Torso")
- if human and torso and v ~= FakeCharacter and v ~= CloneChar then
- --Check and see if they are on our team, if they are break the loop.
- local targetTeam
- local teammate = false
- if v:FindFirstChild("Team") then
- targetTeam = v.Team.Value
- elseif v:FindFirstChild("Settings") and v.Settings:FindFirstChild("Team") then
- targetTeam = v.Settings.Team.Value
- end
- if (targetTeam and targetTeam == team) or (not attackPlayers and game.Players:GetPlayerFromCharacter(v)) then
- teammate = true
- end
- if (myTorso.Position - torso.Position).magnitude < dist and human.Health > 0 then
- for i,x in ipairs(allies) do
- if x == v.Name or teammate then
- table.insert(activeAllies,torso)
- break
- elseif i == #allies then
- table.insert(potentialTargets,torso)
- end
- end
- end
- end
- end
- if #potentialTargets > 0 then
- for i,v in ipairs(potentialTargets) do
- if checkSight(v) then
- table.insert(seeTargets,v)
- end
- end
- if #seeTargets > 0 then
- for i,v in ipairs(seeTargets) do
- if (myTorso.Position - v.Position).magnitude < dist then
- target = v
- dist = (myTorso.Position - v.Position).magnitude
- end
- end
- else
- for i,v in ipairs(potentialTargets) do
- if (myTorso.Position - v.Position).magnitude < dist then
- target = v
- dist = (myTorso.Position - v.Position).magnitude
- end
- end
- end
- end
- currentTarget = target
- end
- function pathToLocation(target)
- local path = game:GetService("PathfindingService"):CreatePath()
- path:ComputeAsync(myTorso.Position, target.Position)
- local waypoints = path:GetWaypoints()
- for _,waypoint in ipairs(waypoints) do
- if waypoint.Action == Enum.PathWaypointAction.Jump then
- myHuman.Jump = true
- end
- myHuman:MoveTo(waypoint.Position)
- spawner(function()
- wait(0.5)
- if myHuman.WalkToPoint.Y > myTorso.Position.Y then
- myHuman.Jump = true
- end
- end)
- local moveSuccess = myHuman.MoveToFinished:Wait()
- if not moveSuccess or not target.Parent or (checkDist(myTorso,target) < 30 and checkSight(target)) or currentTarget ~= target then
- break
- end
- if checkDist(target,waypoints[#waypoints]) > 30 then
- pathToLocation(target)
- end
- end
- end
- function walkRandom()
- local randX = math.random(-100,100)
- local randZ = math.random(-100,100)
- local goal = myTorso.Position + Vector3.new(randX, 0, randZ)
- local path = game:GetService("PathfindingService"):CreatePath()
- path:ComputeAsync(myTorso.Position, goal)
- local waypoints = path:GetWaypoints()
- if path.Status == Enum.PathStatus.Success then
- for i,waypoint in ipairs(waypoints) do
- if waypoint.Action == Enum.PathWaypointAction.Jump then
- myHuman.Jump = true
- end
- myHuman:MoveTo(waypoint.Position)
- spawner(function()
- wait(0.5)
- if myHuman.WalkToPoint.Y > myTorso.Position.Y then
- myHuman.Jump = true
- end
- end)
- local moveSuccess = myHuman.MoveToFinished:Wait()
- if not moveSuccess or currentTarget then
- break
- end
- end
- else
- wait(2)
- end
- end
- function drawM4()
- yieldKnife()
- if m4Equipped == false then
- m4Equipped = true
- equipSound:Play()
- --Right Arm Setup
- rShoulder.Part1 = nil
- rArm.CFrame = aimer.CFrame * CFrame.new(1.25,0.05,-0.65) * CFrame.Angles(math.rad(80),math.rad(0),math.rad(-10))
- rArmWeld.Part1 = rArm
- --Left Arm Setup
- lShoulder.Part1 = nil
- lArm.CFrame = aimer.CFrame * CFrame.new(-0.35,0.05,-1.48) * CFrame.Angles(math.rad(84),math.rad(-3),math.rad(28))
- lArmWeld.Part1 = lArm
- --M4 Setup
- m4Weld.Part0 = nil
- m4.CFrame = aimer.CFrame * CFrame.new(0.65,0.37,-2.22) * CFrame.Angles(math.rad(-90),math.rad(0),math.rad(0))
- m4Weld.Part0 = aimer
- end
- end
- function yieldM4()
- myHuman.AutoRotate = true
- gyro.MaxTorque = Vector3.new(0,0,0)
- if weaponAimed == true then
- weaponAimed = false
- resetHead()
- end
- if m4Equipped == true then
- m4Equipped = false
- equipSound:Play()
- --Right Arm setup
- rArmWeld.Part1 = nil
- rShoulder.Part1 = rArm
- --Left Arm Setup
- lArmWeld.Part1 = nil
- lShoulder.Part1 = lArm
- --M4 Setup
- m4Weld.Part0 = nil
- m4.CFrame = myTorso.CFrame * CFrame.new(0,0,0.6) * CFrame.Angles(math.rad(-90),math.rad(-60),math.rad(90))
- m4Weld.Part0 = myTorso
- end
- end
- function drawKnife()
- if knifeEquipped == false then
- yieldM4()
- knifeEquipSound:Play()
- knifeEquipped = true
- knifeWeld.Part0 = nil
- knife.CFrame = rArm.CFrame * CFrame.new(0,-1,-1) * CFrame.Angles(math.rad(90),math.rad(180),math.rad(180))
- knifeWeld.Part0 = rArm
- end
- end
- function yieldKnife()
- if knifeEquipped == true then
- knifeEquipped = false
- knifeWeld.Part0 = nil
- knife.CFrame = myTorso.CFrame * CFrame.new(-1,-1,0.5) * CFrame.Angles(math.rad(-65),0,math.rad(180))
- knifeWeld.Part0 = myTorso
- end
- end
- function aim(target)
- if weaponAimed == false then
- game:GetService("TweenService"):Create(neck,TweenInfo.new(0.5),{C0 = neck.C0 * CFrame.Angles(0,math.rad(-15),0)}):Play()
- end
- myHuman.AutoRotate = false
- weaponAimed = true
- gyro.CFrame = CFrame.new(myTorso.Position,target.Position)
- gyro.MaxTorque = Vector3.new(0,math.huge,0)
- if not reloading then
- local aimCFrame = CFrame.new(aimer.Position,target.Position)
- aimCFrame = aimCFrame - aimCFrame.Position
- local negateCFrame = myTorso.CFrame - myTorso.Position
- local newC0 = CFrame.new(0,0.5,0) * negateCFrame:Inverse() * aimCFrame
- local x,y,z = newC0:ToEulerAnglesXYZ()
- x = math.clamp(x,-0.8,0.8) --So his aiming isn't crazy backwards
- newC0 = CFrame.new(0,0.5,0) * CFrame.fromEulerAnglesXYZ(x,0,0)
- local lookDiff = (newC0.LookVector - aimerWeld.C0.LookVector).Magnitude
- game:GetService("TweenService"):Create(aimerWeld,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play()
- local newC0 = CFrame.new(0,1,0) * CFrame.Angles(-1.5 + math.rad(aimer.Orientation.X),math.rad(15),math.rad(180)) ---1.5 -
- game:GetService("TweenService"):Create(neck,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play()
- wait(lookDiff*0.2)
- end
- end
- function resetHead()
- game:GetService("TweenService"):Create(neck,TweenInfo.new(0.5),{C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(-90),0,math.rad(180))}):Play()
- end
- function shoot(target)
- if weaponCool == true and reloading == false then
- weaponCool = false
- local shot
- if checkDist(target,myTorso) > 60 then
- shot = 1
- else
- shot = 3
- end
- for i = 1, shot do
- wait(0.1)
- mag = mag - 1
- flash:Emit(1)
- local flash = Instance.new("PointLight",barrel)
- flash.Brightness = 3
- game:GetService("Debris"):AddItem(flash,0.1)
- local bullet = Instance.new("Part")
- bullet.Size = Vector3.new(0.1,0.1,0.3)
- bullet.BrickColor = BrickColor.new("Gold")
- bullet.Material = Enum.Material.Neon
- bullet.CFrame = barrel.CFrame
- bullet.CanCollide = false
- bullet.Touched:Connect(function(obj)
- if not obj:IsDescendantOf(FakeCharacter) then
- local human = obj.Parent:FindFirstChild("Humanoid")
- if human then
- for i = 1,30 do
- wait()
- HumanRoot.Position = obj.Parent:WaitForChild("HumanoidRootPart").Position
- bambam.Location = obj.Parent:WaitForChild("HumanoidRootPart").Position
- bambam.Force = Vector3.new(1000,0,1000)
- findTarget()
- end
- end
- bullet:Destroy()
- end
- end)
- bullet.Parent = workspace
- fireSound:Play()
- local spread = Vector3.new(math.random(-shot,shot)/100,math.random(-shot,shot)/100,math.random(-shot,shot)/100)
- local bv = Instance.new("BodyVelocity",bullet)
- bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
- bv.Velocity = (aimer.CFrame.LookVector + spread) * 300
- local s = Instance.new("Sound",bullet)
- s.Volume = 0.7
- s.PlaybackSpeed = 7
- s.Looped = true
- s.SoundId = "rbxasset://sounds/Rocket whoosh 01.wav"
- s:Play()
- local a1 = Instance.new("Attachment",bullet)
- a1.Position = Vector3.new(0,0.05,0)
- local a2 = Instance.new("Attachment",bullet)
- a2.Position = Vector3.new(0,-0.05,0)
- local t = Instance.new("Trail",bullet)
- t.Attachment0 = a1
- t.Attachment1 = a2
- t.Color = ColorSequence.new(bullet.Color)
- t.WidthScale = NumberSequence.new(0.1,0.01)
- t.Lifetime = 0.3
- --TODO ADD KICK
- game:GetService("Debris"):AddItem(bullet, 5)
- end
- if mag <= 0 then
- reload()
- end
- spawner(function()
- wait(1)
- weaponCool = true
- end)
- end
- end
- function reload()
- if weaponAimed == true then
- resetHead()
- weaponAimed = false
- end
- reloadSound:Play()
- reloading = true
- yieldM4()
- m4Weld.Part0 = nil
- m4.CFrame = lArm.CFrame * CFrame.new(0.6,-1.3,0.2) * CFrame.Angles(math.rad(180),0,0)
- m4Weld.Part0 = lArm
- reloadAnimation:Play()
- reloadAnimation:AdjustSpeed(3)
- reloadAnimation.Stopped:Wait()
- reloading = false
- mag = fullMag
- drawM4()
- end
- function stab(target)
- if weaponCool == true then
- weaponCool = false
- knifeStabSound:Play()
- knifeAttackSound:Play()
- stabAnimation:Play()
- local human = target.Parent.Humanoid
- HumanRoot.Position = target.Parent:WaitForChild("HumanoidRootPart").Position
- bambam.Location = target.Parent:WaitForChild("HumanoidRootPart").Position
- bambam.Force = Vector3.new(500,0,500)
- spawner(function()
- wait(0.5)
- weaponCool = true
- end)
- end
- end
- function yieldWeapons()
- yieldKnife()
- yieldM4()
- if weaponAimed == true then
- weaponAimed = false
- resetHead()
- end
- end
- function checkCluster(target)
- --Check for nearby allies
- for i,v in ipairs(activeAllies) do
- if checkDist(target,v) < 30 then
- return false
- end
- end
- --Check if enemies are paired close together
- for i,v in ipairs(potentialTargets) do
- if v ~= target then
- if checkDist(target,v) < 15 then
- return true
- end
- end
- end
- return false
- end
- function throwGrenade(target)
- if weaponCool == true and grenadeCool == true then
- weaponCool = false
- grenadeCool = false
- yieldWeapons()
- local g = grenade:Clone()
- g.Boom.PlayOnRemove = true
- g.Parent = workspace
- g.CanCollide = true
- g.CFrame = rArm.CFrame * CFrame.new(0,-1.3,0) * CFrame.Angles(0,0,math.rad(90))
- game:GetService("Debris"):AddItem(g,5)
- grenade.Transparency = 1
- local w = Instance.new("WeldConstraint",g)
- w.Part0 = rArm
- w.Part1 = g
- throwAnimation:Play()
- pinSound:Play()
- aim(target)
- wait(0.4)
- if myHuman.Health <= 0 then
- return
- end
- aim(target)
- throwAnimation:Stop()
- w.Part1 = nil
- local dist = checkDist(myTorso,target)
- g.Velocity = (myTorso.CFrame.LookVector + Vector3.new(0,1,0)) * Vector3.new(dist,dist*1.5,dist)
- --Wait until grenade is thrown before it can be primed
- touched = g.Touched:Connect(function(obj)
- if not obj:IsDescendantOf(FakeCharacter) then
- touched:Disconnect()
- g.Pin:Play()
- wait(0.5)
- local x = Instance.new("Explosion",workspace)
- x.Position = g.Position
- x.Hit:Connect(function(obj,dist)
- local human = obj.Parent:FindFirstChild("Humanoid")
- if human then
- human:TakeDamage(20 - dist)
- human:ChangeState(Enum.HumanoidStateType.Ragdoll)
- end
- end)
- g:Destroy()
- game:GetService("Debris"):AddItem(x,2)
- end
- end)
- local attach0 = g.Attach0
- local attach1 = g.Attach1
- local t = Instance.new("Trail",g)
- t.Attachment0 = attach0
- t.Attachment1 = attach1
- t.Lifetime = 0.5
- t.Color = ColorSequence.new(Color3.fromRGB(150,150,150))
- t.WidthScale = NumberSequence.new(1,0)
- spawner(function()
- wait(1)
- weaponCool = true
- wait(5)
- grenadeCool = true
- grenade.Transparency = 0
- end)
- end
- end
- function movementLoop()
- while myHuman.Health>0 do
- if currentTarget then
- if checkDist(currentTarget,myTorso) > 30 or not checkSight(currentTarget) then
- pathToLocation(currentTarget)
- elseif checkDist(currentTarget,myTorso) > 8 then
- if math.random(0,1) == 1 then
- myHuman:Move(myTorso.CFrame.RightVector)
- else
- myHuman:Move(-myTorso.CFrame.RightVector)
- end
- wait(0.5)
- end
- else
- local randomAction = math.random(4)
- if randomAction == 3 then
- walkRandom()
- elseif randomAction == 2 then
- --print("Look randomly")
- end
- wait(3)
- end
- wait(0.1)
- end
- end
- function searchTargetLoop()
- while myHuman.Health>0 do
- findTarget()
- wait(3)
- end
- end
- function aimingLoop()
- while myHuman.Health>0 do
- if currentTarget then
- if checkSight(currentTarget) then
- aim(currentTarget)
- gunPointedAt = currentTarget
- else
- wait(0.5)
- end
- else
- wait(2)
- end
- wait()
- end
- end
- function attackLoop()
- while myHuman.Health>0 do
- if currentTarget then
- status = "Hunting"
- updateFace()
- if checkSight(currentTarget) then
- status = "Attacking"
- updateFace()
- local distance = checkDist(myTorso,currentTarget)
- if distance > 15 then
- if checkCluster(currentTarget) == true and distance < 100 and distance > 30 and grenadeCool then
- throwGrenade(currentTarget)
- else
- drawM4()
- repeat
- wait()
- until gunPointedAt == currentTarget
- shoot(currentTarget)
- end
- else
- drawKnife()
- myHuman:MoveTo(currentTarget.Position)
- local canStab = false
- for i,v in pairs(currentTarget.Parent:GetChildren()) do
- if v:IsA("BasePart") and checkDist(v,myTorso) < 7 then
- canStab = true
- end
- end
- if canStab then
- stab(currentTarget)
- end
- end
- else
- if weaponAimed == true then
- weaponAimed = false
- myHuman.AutoRotate = true
- gyro.MaxTorque = Vector3.new(0,0,0)
- resetHead()
- local newC0 = CFrame.new(0,0.5,0) * CFrame.Angles(-0.5,0,0)
- local lookDiff = (newC0.LookVector - aimerWeld.C0.LookVector).Magnitude
- game:GetService("TweenService"):Create(aimerWeld,TweenInfo.new(lookDiff * 0.2),{C0 = newC0}):Play()
- end
- end
- else
- status = "Idle"
- updateFace()
- yieldWeapons()
- wait(2)
- end
- wait(0.1)
- end
- end
- function Died()
- FakeCharacter:Destroy()
- CloneChar:Destroy()
- game.Players.LocalPlayer.Character:Destroy()
- end
- myHuman.Died:Connect(Died)
- local oldHealth = myHuman.Health
- local soundSpeeds = {0.9,0.95,1,1.05,1.1}
- myHuman.HealthChanged:Connect(function(health)
- if health < oldHealth and hurtSound.IsPlaying == false then
- hurtSound.PlaybackSpeed = soundSpeeds[math.random(#soundSpeeds)]
- hurtSound:Play()
- spawner(function()
- myFace.Texture = faces.Hurt
- wait(1)
- if myFace.Texture == faces.Hurt then
- myFace.Texture = faces[status]
- end
- end)
- end
- oldHealth = health
- end)
- spawner(searchTargetLoop)
- spawner(attackLoop)
- spawner(movementLoop)
- spawner(aimingLoop)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement