When updating the position of a frame, tweening or not, the script checks the specific Y Scale value on the Frame to see if it doesn't equal the value it gets set to
The script initially is supposed to ignore the if statement, and go to the else statement meaning since the frame hasn't been tweened yet, and once another tween is called, the if statement clears the tween basically
For Example:
message = values.Message.Changed:Connect(function()
if (values.Message.Value) then
UI.MessageFrame.Visible = true;
if (UI.MessageFrame.Position.Y.Scale ~= .9) then
if (UI.MessageFrame.Position.Y.Scale > .79) then
local start = tick();
repeat wait() until (UI.MessageFrame.Position.Y.Scale <= .82 or tick()-start >= .5)
task.wait(1)
end
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.9, 0)});
task.wait(1.3)
if (values.Message.Value) then
UI.MessageFrame.Message.Text = values.Message.Value;
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.79, 0)});
wait(2.5)
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.9, 0)});
wait(1)
UI.MessageFrame.Visible = false;
end
else
warn"ya"
UI.MessageFrame.Message.Text = values.Message.Value;
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.79, 0)});
task.wait(2.5)
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.9, 0)});
wait(1)
UI.MessageFrame.Visible = false;
end
else
if (UI.MessageFrame.Position.Y.Scale ~= .9) then
tweenObj(UI.MessageFrame, 1, {Position = UDim2.new(0.822, 0, 0.9, 0)});
wait(1)
UI.MessageFrame.Visible = false;
end
end
end)
Segment that isn't running properly:
if (UI.MessageFrame.Position.Y.Scale ~= .9) then
At this portion, when I print the Y Position, it prints 0.89999999764121, instead of 0.9, as in the position property of the frame at the exact moment says {0.822, 0},{0.9, 0}
Does anyone have any related issues to this? I'm only posting this because it has always worked before, and now all of a sudden it starts with this issue. I feel as if this is a ROBLOX API issue at the moment.
