I have the UI for it, I just don’t know how to script it.
Basically every like 30 seconds the UI will show up at the top of the screen. Each message is different.
Reference:
I have the UI for it, I just don’t know how to script it.
Basically every like 30 seconds the UI will show up at the top of the screen. Each message is different.
Reference:
Make a table containing al lthe messages you want to display and make a loop that every 30 seconds, display a message, you could make a check as well to determine if it’s the same message and if it is, generate again
Create a table with the statements, and every 30 seconds, pick a random one to be shown.
Here’s an example I found in Scripting Helpers:
link: How do I get a random choice from a table? - Scripting Helpers
Code:
local table = {"Apple","Orange","String"} -- Items table.
local value = math.random(1,#table) -- Get random number with 1 to length of table.
local picked_value = table[value] -- Pick value from table
print(tostring(picked_value)) -- Print picked value
If you wanted to apply this for your game you should do something like this:
local UI = your ui
local ListOfMessages = {"Msg1", "Msg2"}
local value = math.random(1,#table)
local picked_val = table[value]
UI.Text = (tostring(picked_value)) --this line is really bad, you would probably want to modify it a lot
Edit: you should have a wait too
Hello, There I see you need help!
This is my way ( beginners )
while true do -- If you dont want the textlabel to loop then remove the while true do
NotiText:TweenPosition(UDim2.new(0.3, 0,0.036, 0),"In","Back") -- Change This if you want
wait(5)
NotiText:TweenPosition(UDim2.new(0.311, 0,1.02, 0),"In","Back")
wait(5)
NotiText:TweenPosition(UDim2.new(0.3, 0,0.036, 0),"In","Back")
wait(5)
NotiText.Text = "This game was scripted and built by NCSDeveloper1"
NotiText.Text = "If your camera gets stuck in Mid-Air, make sure to reset! This bug will get resolve soon"
wait(5)
NotiText:TweenPosition(UDim2.new(0.311, 0,1.02, 0),"In","Back")
NotiText.Text = "Welcome to Test Your Time 2! "
NotiText.Text = "Take your time, no neeed to rush! "
NotiText.Text = "Halo shop might be coming to the game!?"
wait(1)
repeat until(100)
end
Something like this would display the messages in the correct order and repeat forever.
local textLabel = ...
local messages = {
"message1",
"message2"
}
while true do
for i,v in ipairs(messages) do
textLabel.Text = v
wait(5)
end
end
What exactly is this doing?
You’re doing an awful lot of unnecessary waits, but no waits between each text change, meaning the player won’t see some of the text.
Ref:
wait() is based on the player’s FPS, which means a laggy player will have a horrible UI experience if waits aren’t depended on deltatime etc.
A working solution would be something like this:
local NotificationText = TextLabel --define here
local Notifications = {[1] = "Notification1"; [2] = "Notification2"; [3] = "Notification 4";} --and so forth, don't forget to include the key in order
--let's assume you're doing all UI management inside one local script, we would need to use a coroutine to loop without infinitely yielding the current thread
local loopFunction = coroutine.wrap(function() --wrap in coroutine
local count = 1
while wait(60) do --note: NEVER depend on the player's framerate to yield scripts, use deltatime
NotificationText.Text = Notifications[count] --would print out "Notification1" on the first loop
if not Notifications[count] then
count = 1 --if we reached the end of the notifications available, go back to 1
else
count += 1 --otherwise, carry on
end
end
end)
loopFunction() --should run in a separate thread and not interrupt your script
Oh okay, I didn’t notice! thanks for alerting me.
Yes, I was just giving a basic example, but you are correct, that could be a issue.
Not sure why you would do it this way as @UnstableGL said it is very unneeded/unorganized. (Not trying to hate if you think i’m hating)
I’m honestly very confused. Everyone is giving me different scripts-
Your good man! this is the easiest way for a beginner I’m guessing but there is a lot of way you can do it like using functions @UnstableGL example