Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How To Fix This Script To Update A String Value Automatically?

Script:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local stardestroy = ReplicatedStorage:WaitForChild("StarDestroyCondition")
local RunService = game:GetService("RunService")

game.Players.PlayerAdded:Connect(function(player)	
	while true do
		wait()
		local Levels = player:WaitForChild("leaderstats").Level.Value 
		local LevelString = script.Parent.Parent.StarterPlayer.StarterPlayerScripts.LocalArrowScript.Levels.Value				
		print("String Obtained", LevelString, "and Levels Obtained", Levels)
		if tonumber(Levels) == 5 then
		if Levels == LevelString then								
			stardestroy:FireClient(player)							
				print("Fired Successfully")	
			end
		end
	end
end)

Any idea on how I could brush up this script to be able to determine the amount of checkpoints automatically without me having to change the value each time??

Specifically this piece of coding, I want to change it in order for it to become automatic.

if tonumber(Levels) == 5 then

The thing is, this piece of coding is supposed to fire a remote event to the client side which will, in return, trigger this piece of coding on a local script:

StarDestroyer.OnClientEvent:Connect(function()	
			cloneStar:Destroy()	
			print("Destroyed")		
		end)

But in order for that to happen and work, I need the LevelString to contain the amount of checkpoints that my game possesses and if I add any more checkpoints, I would like it to be updated automatically.

2 answers

I've figured out how to automatically get all of my game's checkpoints into the LevelString String Value. Here's the code:

	coroutine.resume(coroutine.create(function()
		for i,Levels in ipairs(checkpoints:GetChildren()) do		
			if Levels:IsA("BasePart") and Levels ~= nil then			
				local NumLevels = tonumber(Levels.Name)
				if script.Parent.Parent.StarterPlayer.StarterPlayerScripts.LocalArrowScript.Levels.Value ~= NumLevels then	
					script.Parent.Parent.StarterPlayer.StarterPlayerScripts.LocalArrowScript.Levels.Value = NumLevels	
					print("Total Levels are", NumLevels)
				end
			end
		end
	end))

If you have any improvements or any feedback on this code, feel free to send them.

hey you! have you ever heard of enes? if you are in trouble, better call enes!

1 comment

0

??

This discussion is preserved as it was. New answers, comments, and votes are closed.