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

vote value doesnt change when clicked dislike/like button on gui. help?

Asked by 3 years ago

Here im trying to have it so if a player likes or dislikes there will be for example: "2 votes" or "2 dislikes" but the value stays at zero. also the main parts of tthe code im struggling to repair are the dislike and like buttons and how they dont change value of votes.


local Player = game.Players.LocalPlayer local Frame = script.Parent.Inner local VoteBar = Frame:WaitForChild("VoteBar") local Music = workspace:WaitForChild("Music") local UIS = game:GetService("UserInputService") local Storage = game:GetService("ReplicatedStorage") local vote_allow = true local MIN_VOTES = 13 function moveBar(val) val = math.clamp(tonumber(val) or 1, 0, 1) VoteBar.Green:TweenSize(UDim2.new(val, 0, 0, 10), "Out", "Quad", 0.5, true) end function vote(like) if vote_allow then vote_allow = false Frame.Like.Selected = like Frame.Dislike.Selected = not like Storage.Events.RateMusic:FireServer(like) wait(1) vote_allow = true end end function resetVote() Frame.Like.Count.Text, Frame.Dislike.Count.Text = "0", "0" Frame.Like.Selected, Frame.Dislike.Selected = false, false VoteBar.SkipLine.Visible = false moveBar(1) end resetVote() updateMetadata() Storage.Events.UpdateVotes.OnClientEvent:connect(function(ratio, reset, data) if reset then resetVote() else moveBar(ratio) if data then Frame.Like.Count.Text = data.Likes Frame.Dislike.Count.Text = data.Dislikes VoteBar.SkipLine.Visible = data.Likes + data.Dislikes >= MIN_VOTES end end end) Music.Metadata.Artist.Changed:connect(updateMetadata) Music.Metadata.Artist.RequestedBy.Changed:connect(updateMetadata) Music.Metadata.Title.Changed:connect(updateMetadata) Music.DJ.AutoDJ.Changed:connect(updateMetadata) Frame.Like.MouseButton1Down:connect(function() vote(true) end) Frame.Dislike.MouseButton1Down:connect(function() vote(false) end) Frame.Like.MouseEnter:connect(function() Frame.Like.ImageTransparency = 0 end) Frame.Like.MouseLeave:connect(function() Frame.Like.ImageTransparency = 0.5 end) Frame.Dislike.MouseEnter:connect(function() Frame.Dislike.ImageTransparency = 0 end) Frame.Dislike.MouseLeave:connect(function() Frame.Dislike.ImageTransparency = 0.5 end) Frame.Like.Changed:connect(function(prop) if prop == "Selected" then Frame.Like.Image = Frame.Like.Selected and "decal" or "like decal here" end end) Frame.Dislike.Changed:connect(function(prop) if prop == "Selected" then Frame.Dislike.Image = Frame.Dislike.Selected and "decal here" or "dislike decal here" end end)

1 answer

Log in to vote
0
Answered by 3 years ago

As you were saying in the chat. You have no server side script. Write one and then it should work.

Also, to make your life simpler, don't use strings as debounces, use bools.

Let me know if you need any help with your server code!

Cheers, Zander. (Aka Cynical)

Ad

Answer this question