Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CurrentWeather = 'EXTRASUNNY'
- local lastWeather = CurrentWeather
- local baseTime = 0
- local timeOffset = 0
- local timer = 0
- local freezeTime = false
- local blackout = false
- local disable = false
- RegisterNetEvent('mythic_base:client:Logout')
- AddEventHandler('mythic_base:client:Logout', function()
- disable = true
- end)
- RegisterNetEvent('mythic_base:client:CharacterSpawned')
- AddEventHandler('mythic_base:client:CharacterSpawned', function()
- disable = false
- TriggerServerEvent('mythic_sync:server:RequestStateSync')
- end)
- RegisterNetEvent('mythic_sync:client:EnableSync')
- AddEventHandler('mythic_sync:client:EnableSync', function()
- disable = false
- TriggerServerEvent('mythic_sync:server:RequestStateSync')
- SetRainFxIntensity(-1.0)
- end)
- RegisterNetEvent('mythic_sync:client:DisableSync')
- AddEventHandler('mythic_sync:client:DisableSync', function()
- disable = true
- Citizen.CreateThread(function()
- while disable do
- SetRainFxIntensity(0.0)
- SetWeatherTypePersist('EXTRASUNNY')
- SetWeatherTypeNow('EXTRASUNNY')
- SetWeatherTypeNowPersist('EXTRASUNNY')
- NetworkOverrideClockTime(23, 0, 0)
- Citizen.Wait(5000)
- end
- end)
- end)
- RegisterNetEvent('mythic_sync:client:SyncTime')
- AddEventHandler('mythic_sync:client:SyncTime', function(base, offset, freeze)
- freezeTime = freeze
- timeOffset = offset
- baseTime = base
- end)
- RegisterNetEvent('mythic_sync:client:SyncWeather')
- AddEventHandler('mythic_sync:client:SyncWeather', function(NewWeather, newblackout)
- CurrentWeather = NewWeather
- blackout = newblackout
- end)
- Citizen.CreateThread(function()
- local hour = 0
- local minute = 0
- while true do
- Citizen.Wait(1)
- if not disable then
- local newBaseTime = baseTime
- if GetGameTimer() - 500 > timer then
- newBaseTime = newBaseTime + 0.25
- timer = GetGameTimer()
- end
- if freezeTime then
- timeOffset = timeOffset + baseTime - newBaseTime
- end
- baseTime = newBaseTime
- hour = math.floor(((baseTime+timeOffset)/60)%24)
- minute = math.floor((baseTime+timeOffset)%60)
- NetworkOverrideClockTime(hour, minute, 0)
- end
- end
- end)
- Citizen.CreateThread(function()
- while true do
- if not disable then
- if lastWeather ~= CurrentWeather then
- lastWeather = CurrentWeather
- SetWeatherTypeOverTime(CurrentWeather, 15.0)
- Citizen.Wait(15000)
- end
- Citizen.Wait(100) -- Wait 0 seconds to prevent crashing.
- SetBlackout(blackout)
- ClearOverrideWeather()
- ClearWeatherTypePersist()
- SetWeatherTypePersist(lastWeather)
- SetWeatherTypeNow(lastWeather)
- SetWeatherTypeNowPersist(lastWeather)
- if lastWeather == 'XMAS' then
- SetForceVehicleTrails(true)
- SetForcePedFootstepsTracks(true)
- else
- SetForceVehicleTrails(false)
- SetForcePedFootstepsTracks(false)
- end
- else
- Citizen.Wait(1000)
- end
- end
- end)
- Citizen.CreateThread(function()
- TriggerEvent('chat:addSuggestion', '/weather', 'Change the weather.', {{ name="weatherType", help="Available types: extrasunny, clear, neutral, smog, foggy, overcast, clouds, clearing, rain, thunder, snow, blizzard, snowlight, xmas & halloween"}})
- TriggerEvent('chat:addSuggestion', '/time', 'Change the time.', {{ name="hours", help="A number between 0 - 23"}, { name="minutes", help="A number between 0 - 59"}})
- TriggerEvent('chat:addSuggestion', '/freezetw', 'Freeze / unfreeze time or weather.', {{ name="type", help="weather or time"}})
- TriggerEvent('chat:addSuggestion', '/blackout', 'Toggle blackout mode.')
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement