I made a script for my battle handler.I would like to ask if this code may be used.Because i get some useless errors for it.
Here’s the script i writed:
local RedTeamCarpet = script.Parent.RedTeamCarpet
local BlueTeamCarpet = script.Parent.BlueTeamCarpet
local RedTeamHitbox = script.Parent.RedTeamHitbox
local BlueTeamHitbox = script.Parent.BlueTeamHitbox
local Screen = script.Parent.Screen
local Event = game.ReplicatedStorage.BattleArena.FightTheme
local Display = Screen.Display
local Frame = Display.Frame
local Player1 = Frame.Player1
local Player2 = Frame.Player2
local Plr1
local Plr2
local RoundGoing = false
local BlueCarpetUsing = false
local RedCarpetUsing = false
RedTeamHitbox.Touched:Connect(function(Hit)
if RedCarpetUsing then
return
end
RedCarpetUsing = true
if Hit.Parent:FindFirstChild("Humanoid") then
Player2.Text = Hit.Parent.Name
RedTeamCarpet.Material = Enum.Material.Neon
end
end)
RedTeamHitbox.TouchEnded:Connect(function(Hit)
Player2.Text = "Nobody"
RedTeamCarpet.Material = Enum.Material.Fabric
RedCarpetUsing = false
end)
BlueTeamHitbox.Touched:Connect(function(Hit)
if BlueCarpetUsing then
return
end
BlueCarpetUsing = true
if Hit.Parent:FindFirstChild("Humanoid") then
Player1.Text = Hit.Parent.Name
BlueTeamCarpet.Material = Enum.Material.Neon
end
end)
BlueTeamHitbox.TouchEnded:Connect(function(Hit)
Player1.Text = "Nobody"
BlueTeamCarpet.Material = Enum.Material.Fabric
BlueCarpetUsing = false
end)
spawn(function()
while true do
if Player1.Text ~= "Nobody" and Player2.Text ~= "Nobody" and RoundGoing == false then
local Plr1UserId = game.Players:GetUserIdFromNameAsync(Player1.Text)
local Plr2UserId = game.Players:GetUserIdFromNameAsync(Player2.Text)
Plr1 = game.Players:GetPlayerByUserId(Plr1UserId)
Plr2 = game.Players:GetPlayerByUserId(Plr2UserId)
print(Plr1,Plr2)
wait(1)
if Player1.Text ~= "Nobody" and Player2.Text ~= "Nobody" then
RoundGoing = true
if Plr1.Character:FindFirstChild("Health") and Plr2.Character:FindFirstChild("Health") then
Plr1.Character.Health:Destroy()
Plr2.Character.Health:Destroy()
end
Event:FireClient(Plr1,"Start")
Event:FireClient(Plr2,"Start")
local NewTool = game.ServerStorage.BattleTools.Sword:Clone()
local NewTool2 = game.ServerStorage.BattleTools.Sword:Clone()
NewTool.Parent = Plr1.Character
NewTool2.Parent = Plr2.Character
Plr1.Character:MoveTo(Vector3.new(-192.5, 58.5, 83.5))
Plr2.Character:MoveTo(Vector3.new(-283.5, 58.5, -7.5))
end
end
wait()
end
end)
spawn(function()
while true do
if RoundGoing == true then
Plr1.Character.Humanoid.WalkSpeed = 25
Plr2.Character.Humanoid.WalkSpeed = 25
Plr1.Character.Humanoid.JumpPower = 0
Plr2.Character.Humanoid.JumpPower = 0
if Plr1.Character.Humanoid.Health == 0 then
print(Plr2.Name.." Has won the round!")
wait(1)
Plr2.Character.Humanoid.Health = 0
Event:FireClient(Plr1,"Stop")
Event:FireClient(Plr2,"Stop")
RoundGoing = false
Plr1.PlayerGui.Battle.Enabled = false
Plr2.PlayerGui.Battle.Enabled = false
workspace["Battle Display"].BattleScreen.Display.Enabled = false
wait()
Plr1 = nil Plr2 = nil
elseif Plr2.Character.Humanoid.Health == 0 then
print(Plr1.Name.." Has won the round!")
wait(1)
Plr1.Character.Humanoid.Health = 0
Event:FireClient(Plr1,"Stop")
Event:FireClient(Plr2,"Stop")
RoundGoing = false
Plr1.PlayerGui.Battle.Enabled = false
Plr2.PlayerGui.Battle.Enabled = false
workspace["Battle Display"].BattleScreen.Display.Enabled = false
wait()
Plr1 = nil Plr2 = nil
end
end
wait()
end
end)
spawn(function()
while true do
if RoundGoing == true then
local UI = Plr1.PlayerGui.Battle
local UI2 = Plr2.PlayerGui.Battle
local BattleScreen = workspace["Battle Display"].BattleScreen
UI.Player1Status.Username.Text = Plr1.Name
UI.Player2Status.Username.Text = Plr2.Name
UI2.Player1Status.Username.Text = Plr1.Name
UI2.Player2Status.Username.Text = Plr2.Name
UI.Player1Status.Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr1.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size60x60)
UI.Player2Status.Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr2.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size60x60)
UI2.Player1Status.Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr1.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size60x60)
UI2.Player2Status.Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr2.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size60x60)
UI.Player1Status.Health.Text = string.sub(Plr1.Character.Humanoid.Health,1,4)
UI.Player2Status.Health.Text = string.sub(Plr2.Character.Humanoid.Health,1,4)
UI2.Player1Status.Health.Text = string.sub(Plr1.Character.Humanoid.Health,1,4)
UI2.Player2Status.Health.Text = string.sub(Plr2.Character.Humanoid.Health,1,4)
BattleScreen.Display.Frame.Player1Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr1.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size150x150)
BattleScreen.Display.Frame.Player2Thumbnail.Image = game.Players:GetUserThumbnailAsync(Plr2.UserId,Enum.ThumbnailType.HeadShot,Enum.ThumbnailSize.Size150x150)
BattleScreen.Display.Frame.Player1Health.Text = string.sub(Plr1.Character.Humanoid.Health,1,4)
BattleScreen.Display.Frame.Player2Health.Text = string.sub(Plr2.Character.Humanoid.Health,1,4)
UI.Enabled = true
UI2.Enabled = true
BattleScreen.Display.Enabled = true
wait()
end
wait()
end
end)
I’m no longer getting any useless errors but i might get again while adding something on it.
Please don’t ask why it is long cuz i don’t know my fault or it is normal.
What do you guys think about my own script? Do i need to change somethings to improve the script?