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

How to detect if a player is already "Frozen"?

Asked by 5 years ago

If a player is hit by a projectile they'll become frozen, but if hit again, another block will spawn. Is there a way I can check if the player is already frozen so another block won't spawn? I've been googling for hours and I just cannot find anything. Here's the code:

01script.Parent.Touched:connect(function(hit)
02    if hit.Parent:FindFirstChild("Humanoid") ~= nil then
03        script.Disabled = true
04        local torso = hit.Parent:FindFirstChild("HumanoidRootPart")
05        local frozen = Instance.new("Part")
06        frozen.Name = "IceCube"
07        frozen.Size = Vector3.new(6,8,6)
08        frozen.Material = "Ice"
09        frozen.BrickColor = BrickColor.new("Pastel Blue")
10        frozen.Transparency = "0.3"
11        frozen.Anchored = false
12        frozen.Parent = torso
13        local weld = Instance.new("Weld")
14        weld.Parent = frozen
15        weld.Part0 = frozen
View all 27 lines...

2 answers

Log in to vote
1
Answered by
Syclya 224 Moderation Voter
5 years ago
Edited 5 years ago

You can use CollectionService for tags and so on.

If you have to freeze someone, tag them with ex: "Frozen", the method is :AddTag(). If you want to check if they already have the tag, use the method :HasTag()

For more information about CollectionService, visit below: https://developer.roblox.com/en-us/api-reference/class/CollectionService

0
Thanks for the help! ScriptedSouls 5 — 5y
0
you're welcome, and sorry for the late reply! Syclya 224 — 5y
Ad
Log in to vote
0
Answered by 5 years ago
Edited 5 years ago

This one sounds easy enough, you add a part named "IceCube" to them once you freeze them, so check if they have it already!

01--NOTE: Pseudocode, homework for OP!
02--...
03local Connection
04Connection=Part.Touched:connect(function(Part)
05    if hit.Parent:FindFirstChild("Humanoid") then
06        if hit.Parent:FindFirstChild("IceCube",true) then --Already frozen! (Search recursively)
07            -...
08        else --Not yet!
09            -...
10        end
11    end
12    Connection:Disconnect() --Make sure this one projectile doesn't hit them *twice*!
13end)
0
This is a pretty computationally expensive way of doing things - instantiating and rendering a part just for a simple boolean check seems excessive. plasmascreen 143 — 5y
1
I'll be practicing pseudocode haha, thanks for the help too. ScriptedSouls 5 — 5y
0
Not necessarily, the part is already there for I assume visual purposes, so might as well use it. Jahaziel_VanDerHas 238 — 5y

Answer this question