When I have these scripts under the name Animate in every NPC on my game to have the NPC attack us, but when multiple NPCs are fighting even on opposite sides of the map their damages combine on every player fighting them... I am STUMPED.
Script:
local Animations = game.ReplicatedStorage.Animations
local WalkAnim = Animations.Walk
local IdleAnim = Animations.Idle
local RunAnim = Animations.Run
local RPunch = Animations.RPunch
local LPunch = Animations.LPunch
local LKick = Animations.LKick
local LHook = Animations.LHook
local Character = script.Parent
local OuterSpeed
local ShiftIsDown = false
Character.Humanoid.Running:Connect(function(Speed)
OuterSpeed = Speed
if Speed >= 1 and ShiftIsDown == false then
for i,v in pairs(Character.Humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
local AnimLoad = Character.Humanoid:LoadAnimation(WalkAnim)
AnimLoad:Play()
end
if Speed == 0 then
for i,v in pairs(Character.Humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
local AnimLoad1 = Character.Humanoid:LoadAnimation(IdleAnim)
AnimLoad1:Play()
end
end)
local Attacker = script.Parent.Reward.Attacker
local canBegin = true
script.Parent.Humanoid.HealthChanged:Connect(function()
if canBegin == false then return end
canBegin = false
local Value = Attacker.Value
local Target = workspace:FindFirstChild(Value)
local RS = game:GetService("RunService")
local TCount = 0
local midAnim
local db = false
_G.dmgLock4 = false
_G.dmgLock3 = false
_G.dmgLock2 = false
local Locked = true
while Locked == true do
script.Parent.Humanoid:MoveTo(Target.HumanoidRootPart.Position)
if db == true then return end
TCount = TCount + 1
local A = game.ReplicatedStorage.Sounds.PunchSwung:Clone()
A.Parent = Character.HumanoidRootPart
A:Play()
A.Ended:Connect(function()
A:Destroy()
end)
if TCount == 1 then
db = true
midAnim = true
for i,v in pairs(Character.Humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
local AnimLoad = Character.Humanoid:LoadAnimation(RPunch)
AnimLoad:Play()
if _G.dmgLock4 == false then
script.Parent["Right Arm"].Touched:Connect(function(Hit)
if _G.dmgLock4 == true then return end
if Hit.Parent.ClassName == "Model" then
_G.dmgLock4 = true
wait()
local T = Hit.Parent
local TGrit = T.Values.Grit.Value
local LStrength = Character.Values.Strength.Value
if midAnim == true then
local DamageDone = script.Parent.Values.Strength.Value * 3 - Hit.Parent.Values.Grit.Value * .25
local A = game.ReplicatedStorage.Sounds.PunchLanded:Clone()
A.Parent = script.Parent.HumanoidRootPart
A:Play()
A.Ended:Connect(function()
A:Destroy()
end)
Hit.Parent.Humanoid.Health = Hit.Parent.Humanoid.Health - DamageDone
wait(1)
else return false
end
end
Hit.Parent.Humanoid.Died:Connect(function()
Locked = false
canBegin = true
end)
end)
end
wait()
midAnim = false
_G.dmgLock4 = false
db = false
end
if TCount == 2 then
db = true
midAnim = true
for i,v in pairs(Character.Humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
local AnimLoad = Character.Humanoid:LoadAnimation(LPunch)
AnimLoad:Play()
if _G.dmgLock3 == false then
script.Parent["Left Arm"].Touched:Connect(function(Hit)
if _G.dmgLock3 == true then return end
if Hit.Parent.ClassName == "Model" then
_G.dmgLock3 = true
wait()
local T = Hit.Parent
local TGrit = T.Values.Grit.Value
local LStrength = Character.Values.Strength.Value
if midAnim == true then
local DamageDone = script.Parent.Values.Strength.Value * 3 - Hit.Parent.Values.Grit.Value * .25
local A = game.ReplicatedStorage.Sounds.PunchLanded:Clone()
A.Parent = script.Parent.HumanoidRootPart
A:Play()
A.Ended:Connect(function()
A:Destroy()
end)
Hit.Parent.Humanoid.Health = Hit.Parent.Humanoid.Health - DamageDone
wait(1)
else return false
end
end
Hit.Parent.Humanoid.Died:Connect(function()
Locked = false
canBegin = true
end)
end)
end
wait()
midAnim = false
_G.dmgLock3 = false
db = false
end
if TCount == 3 then
db = true
midAnim = true
for i,v in pairs(Character.Humanoid:GetPlayingAnimationTracks()) do
v:Stop()
end
local AnimLoad = Character.Humanoid:LoadAnimation(LKick)
AnimLoad:Play()
if _G.dmgLock2 == false then
script.Parent["Left Leg"].Touched:Connect(function(Hit)
if _G.dmgLock2 == true then return end
if Hit.Parent.ClassName == "Model" then
_G.dmgLock2 = true
wait()
local T = Hit.Parent
local TGrit = T.Values.Grit.Value
local LStrength = Character.Values.Strength.Value
if midAnim == true then
local DamageDone = script.Parent.Values.Strength.Value * 3 - Hit.Parent.Values.Grit.Value * .25
local A = game.ReplicatedStorage.Sounds.PunchLanded:Clone()
A.Parent = script.Parent.HumanoidRootPart
A:Play()
A.Ended:Connect(function()
A:Destroy()
end)
Hit.Parent.Humanoid.Health = Hit.Parent.Humanoid.Health - DamageDone
wait(1)
else return false
end
end
Hit.Parent.Humanoid.Died:Connect(function()
Locked = false
canBegin = true
end)
end)
end
wait()
midAnim = false
_G.dmgLock2 = false
db = false
TCount = 0
end
end
end)
