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 a XP system as Mad Game ?

I would like create a XP system as Mad Game or as others games, but how to make?

Mon script who does not works correctly:

local player = script.Parent.Parent.Parent

local XP = player.leaderstats:WaitForChild("XP")
local Level = player.leaderstats:WaitForChild("Level")

XP.Changed:connect(function()
	if XP.Value < 200 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, XP.Value,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 200 XP"
		return;
	elseif XP.Value < 201 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, 0,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 400 XP"
		Level.Value = Level.Value+1
	end
	if XP.Value < 400 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, (XP.Value-200),0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 400 XP"
		return;
	elseif XP.Value < 401 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, 0,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 800 XP"
		Level.Value = Level.Value+1
	end
	if XP.Value < 800 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, (XP.Value-600),0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 800 XP"
		return;
	elseif XP.Value < 801 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, 0,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 1,600 XP"
		Level.Value = Level.Value+1
	end
	if XP.Value < 1600 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, (XP.Value-1400),0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 1,600 XP"
		return;
	elseif XP.Value < 1601 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, 0,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 3,200 XP"
		Level.Value = Level.Value+1
	end
	if XP.Value < 3200 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, (XP.Value-3000),0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 3,200 XP"
		return;
	elseif XP.Value < 3201 then
		script.Parent.Frame.Frame.Frame:TweenSize(UDim2.new(0, 0,0, 10),"Out","Quad",.5)
		script.Parent.Frame.XP.Text = XP.Value.." / 6,400 XP"
		Level.Value = Level.Value+1
	end
end)

1 comment

0

You need to provide us with more information. Why doesn't it work properly, are there any outputs if so, what do they say?

1 answer

Hi NiniBlackJackQc,

I would encourage you to utilize the power of object-oriented programming to monitor your players' scores more efficiently. NumberValues are insecure and just plain messy. In addition, they are basically an alternative to proper programming.

Seen as your skills in programming are somewhat limited, I would like to encourage you to learn more efficient methods for programming by both reading the Lua manual in its entirety and also studying the ROBLOX Wiki extensively.

I know this is not the answer you expect and want, but you really would benefit if you improved your skills more. At the moment, you simply do not have the skills to match any Mad Studio title in terms of efficiency and play-ability. Consider this a wake up call; I hope it helps.

Have a wonderful day, NiniBlackJackQc, and best of luck as you continue learning to program.

Best regards, tkcmdr

Edit: Corrected embarrassing typo

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