Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to reset after character dies?

Asked by 4 years ago

Hello,

Yesterday I tried to reset with those codes below but it didn't work.

I have many animations, I give an example: it changes properties when I click on the button.

01button3 = script.Parent
02 
03function ClickButton ()
04    if button3.BrickColor == BrickColor.new('Persimmon'then
05        button3.BrickColor = BrickColor.new('Mulberry')
06    else
07        button3.BrickColor = BrickColor.new('Persimmon')
08    end
09end
10 
11button3.ClickDetector.MouseClick:connect (ClickButton)

I made a clone into Lighting. I created a Script with this code:

1local clone = workspace.Animations.button3:Clone()
2clone.Parent = game.Lighting

(button3 is inside Workspace > Animations (a folder))

After, i create a Script inside ServerCharacterScripts, with this code:

01script.Parent.Humanoid.Died:Connect(function()
02for i,v in pairs(workspace:GetDescendants()) do
03  if v:IsA("Script") then
04     v:Destroy()
05   end
06end
07for i,v in pairs(game.Lighting:GetDescendants()) do
08  if v:IsA("Script") then
09        v:Clone().Parent = workspace
10      end
11   end
12end)

When I play, I have two problems: - the button keeps changed properties after character dies - I can't click anymore to change properties after death

I'd like that when the character dies, the player restart the game at the last spawn and repeat all the ''operations'' from the last CheckPoint.

Thank you for your help.

2 answers

Log in to vote
0
Answered by 4 years ago

I think this is a better alternative than listening to a humanoid dying since this fires when a character dies and his player is/has been removed.

1game:GetService("Players").PlayerAdded:Connect(function(Player)
2    Player.CharacterRemoving:Connect(function()
3        -- do code
4    end)
5end)
0
Thank you for your answer. Where can I put this code? I replace ServerCharactersScripts code by this one? and --do code, what are you talking about? KevinTito1378 6 — 4y
0
Do code means the rest of your script, like changing the colours. This is a server script so put it anywhere but not in the character scripts or player scripts. radiant_Light203 1166 — 4y
0
It works if it's clicked. I read the explaination below. KevinTito1378 6 — 4y
0
Pardon? radiant_Light203 1166 — 4y
0
Sorry, I write* just below (as second answer) to explain the problem I still have. KevinTito1378 6 — 4y
Ad
Log in to vote
0
Answered by 4 years ago

It works if the button were clicked before death. But when it's not clicked, it changes as if it was clicked, after respawn. I put this code in a script into ServerScriptService.

01button3 = script.Parent.Parent.Workspace.Animations.button3
02 
03game:GetService("Players").PlayerAdded:Connect(function(Player)
04        Player.CharacterRemoving:Connect(function(ClickButton)
05        if button3.BrickColor == BrickColor.new('Persimmon'then
06        button3.BrickColor = BrickColor.new('Mulberry')
07    else
08        button3.BrickColor = BrickColor.new('Persimmon')
09    end
10    end)
11end)
12 
13button1 = script.Parent.Parent.Workspace.Animations.button1
14 
15game:GetService("Players").PlayerAdded:Connect(function(Player)
View all 23 lines...
0
That's because you're changing the colour to its clicked state. Just set the colour to Mulberry without using an if condition. And you're doing the same for button 1 just set its transparency to 0.5 directly. radiant_Light203 1166 — 4y
0
Original was Persimmon and Transparency = 0. Now, it works with it. Thank you very much for your help :D KevinTito1378 6 — 4y

Answer this question