Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
util.AddNetworkString( "ClientIdealTimescale" )
net.Receive("ClientIdealTimescale",function(len,ply)
if len == 0 or !IsValid(ply) then return end
local ClientIdealTimescale = 1
ClientIdealTimescale = net.ReadDouble()
if ClientIdealTimescale > 1 then
ClientIdealTimescale = 1
elseif ClientIdealTimescale <= 0 then
ClientIdealTimescale = 1
end
ply.ClientIdealTimescale = ClientIdealTimescale
end)
hook.Add("Tick","ServerDecidedTimescale", function()
local ClientsSummedIdealTimescale = 0
local players = 0
for key, ply in pairs(player.GetAll()) do
if !ply.ClientIdealTimescale then return end
ClientsSummedIdealTimescale = ClientsSummedIdealTimescale + ply.ClientIdealTimescale
players = players + 1
end
local wantedts = math.min(ClientsSummedIdealTimescale / players,1)
local thetimescale = game.GetTimeScale()
if wantedts < thetimescale then
game.SetTimeScale(thetimescale - 0.02)
end
if wantedts > thetimescale then
game.SetTimeScale(thetimescale + 0.001)
end
-- game.SetTimeScale(wantedts)
-- print(ClientsSummedIdealTimescale / players)
-- print(game.GetTimeScale())
end)
hook.Add("Tick","timescalestuff",function()
-- if math.Round(RealTime() % 5) != 0 then return end
local wantedfps = GetConVar('fps_max'):GetInt() or 30
local fps = (1 / RealFrameTime())
local IdealTimescale = (math.Clamp((fps / wantedfps),0,1))
if IdealTimescale < wantedfps then
net.Start("ClientIdealTimescale",true)
net.WriteDouble(IdealTimescale)
net.SendToServer()
end
-- print(IdealTimescale)
end)
end
for key, ply in pairs(player.GetAll()) do
if !ply.ClientIdealTimescale then return end
ClientsSummedIdealTimescale = ClientsSummedIdealTimescale + ply.ClientIdealTimescale
players = players + 1
end
local wantedts = math.min(ClientsSummedIdealTimescale / players,1)
if wantedts < thetimescale then
game.SetTimeScale(thetimescale - 0.02)
end
if wantedts > thetimescale then
game.SetTimeScale(thetimescale + 0.001)
end