Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте , помогите сделать систему времени в игре (Lua , роблокс студио)

Максим Беляков Ученик (116), на голосовании 2 недели назад
Здравствуйте , помогите сделать систему времени в игре
Тоесть не просто в лидерборде , а над головой
Систему времени в лидер борде я написал , хотелось бы еще над головой.
Дополнен 1 месяц назад
Голосование за лучший ответ
Александр Николаев Ученик (225) 1 месяц назад
На каком ЯП? Или на каком движке?
Максим БеляковУченик (116) 1 месяц назад
Lua в роблокс студио
свалился с луны кто такой не знает сам Гуру (2666) 1 месяц назад
Над какой головой? Причем тут лидерборд?
Объясни по человечески
Максим БеляковУченик (116) 1 месяц назад
чтобы время игры показывалось еще над головой и был виден всем игрокам
свалился с луны кто такой не знает сам Гуру (2666) Максим Беляков, а, роблокс. Тогда не знаю. Я думал вопрос не столько по технологии, сколько по алгоритмам
ivan866_z Мудрец (19850) 1 месяц назад
вот простенький скриптик, класть в ServerScriptService
в StarterGui создать BillboardGui, в котором Frame, в котором TextLabel

обрати внимание, что данная реализация отсчитывает время для каждого игрока независимо, из за чего цифры над головами сменяются несинхронно
чтобы это исправить, нужно отвязаться от события PlayerAdded и сделать нормальный менеджер данной фичи, который будет все делать для всех зашедших в матч игроков в одном цикле; но общее представление этот скрипт тоже дает
 local playersSvc = game:GetService('Players') 
local starterGuiSvc = game:GetService('StarterGui')

local ts_disp:BillboardGui = starterGuiSvc['timesystem-display']
local T_DELTA:number = -1

playersSvc.PlayerAdded:Connect(function(player)
local ch:Model = player.Character or player.CharacterAppearanceLoaded:Wait()
local new_disp:BillboardGui = ts_disp:Clone()
new_disp.Parent = ch.Head
new_disp.Enabled = true

local t_value:number = Random.new():NextInteger(15, 90)
local co:thread = coroutine.create(function()
while true do
task.wait(math.abs(T_DELTA))
t_value = t_value + T_DELTA
new_disp.Frame.value.Text = string.format('%02d:%02d', math.floor(t_value/60), t_value%60)
if t_value <= 0 then
return
end
end
end)
coroutine.resume(co)
end)
Максим БеляковУченик (116) 1 месяц назад
Спасибо большое!
Похожие вопросы