Skip to content

Time System ​

Clima e hora iguais para todos os jogadores, com um painel para a staff. Tem transição de clima, apagão, neve no chão, rotação automática e zonas com clima próprio.

Precisa de: oxmysql, ox_lib, krs_helper

Instalação ​

cfg
ensure time_system

Coloque depois do krs_helper. As tabelas são criadas sozinhas. Veja a ordem de instalação.

Use só um script de clima. Se o servidor já tem outro, coloque # na frente do ensure dele. No krs não há sincronizador próprio para desligar.

Comandos ​

ComandoO que faz
/weatherAbre o painel
/time, /weatheruiFazem o mesmo

Não há tecla padrão. Cada jogador escolhe em Configurações > Teclas > FiveM, ou o dono define uma para todos em Keybind.

Painel ​

As teclas 1, 2 e 3 trocam de aba.

AbaO que faz
AgoraTroca o clima, trava o clima, liga apagão e neve no chão
RotaçãoLista de climas que se repete, com a duração de cada etapa. Pode reordenar e pular etapa
ZonasClima diferente em uma área do mapa

O relógio aparece nas abas Agora e Rotação. Arraste o sol ou digite a hora. Também pode parar o relógio.

Cada etapa da rotação dura pelo menos 10 segundos.

Para criar uma zona:

  1. Clique no mapa onde quer o centro, ou use "Nova onde estou".
  2. Escolha nome, clima e raio.
  3. Salve.

Permissão ​

O painel exige um dos grupos de AdminGroups. Basta um.

FrameworkComo liberar
krs, CreativeGrupo Admin do framework
vRPGrupos god, admin ou mod
QBCoreadd_principal identifier.license:SUA_LICENSE group.admin e add_ace group.admin admin allow
Sem frameworkadd_principal identifier.license:SUA_LICENSE group.admin e add_ace group.admin group.Admin allow

Log no Discord ​

As ações do painel vão para o log do krs_helper. Para enviar ao Discord:

cfg
set krs_helper_webhook "URL_DO_SEU_WEBHOOK"

Use set, nunca setr.

Configuração ​

Tudo fica em config.lua. Só precisa ter o que você mudou. Os textos e os nomes dos climas ficam em locales/*.json.

Acesso e comandos ​

OpçãoPadrãoO que muda
AdminGroupsAdmin, OwnerGrupos que abrem o painel
Command"weather"Comando. "" desliga o comando, os outros nomes e a tecla
Aliasestime, weatheruiOutros nomes do comando
Keybind""Tecla padrão, como "F7". Vazio deixa o jogador escolher

Clima ​

OpçãoPadrãoO que muda
WeatherTypesEXTRASUNNY, CLEAR, CLEARING, NEUTRAL, CLOUDS, OVERCAST, SMOG, FOGGY, RAIN, THUNDER, SNOW, BLIZZARD, SNOWLIGHT, XMAS, HALLOWEENClimas do painel, na ordem
DefaultWeather"CLEAR"Clima inicial e do botão de voltar
TransitionDuration15.0Duração da transição, em segundos
FreezeWeatherOnStartfalseClima começa travado
AutoSnowOnGroundtrueNeve no chão nos climas de neve
ClearZonesOnWeatherChange"disable"Ao trocar o clima na aba Agora: "disable" desliga as zonas, "delete" apaga, "keep" não mexe
DisableScheduleOnWeatherChangetrueDesliga a rotação ao trocar o clima na aba Agora

Hora ​

OpçãoPadrãoO que muda
DefaultTimehour = 12, minute = 0Hora inicial e do botão de voltar
FreezeTimeOnStartfalseRelógio começa parado
GameMinuteDuration2000Duração de 1 minuto do jogo, em ms
SmoothTimeTransitiontrueTransição suave da hora

Zonas ​

OpçãoPadrãoO que muda
MinZoneRadius200Raio mínimo, em metros
MaxZoneRadius5000Raio máximo, em metros
ZoneTransitionDuration10.0Transição ao entrar ou sair, em segundos

Outros ​

OpçãoPadrãoO que muda
HudEvent"hud:Active"Evento local disparado com false ao abrir o painel e true ao fechar. Troque pelo evento da sua HUD, ou use "" para desligar
NoticeTime5000Duração dos avisos, em ms
SyncInterval5000Intervalo de sincronia, em ms
RateLimitsPor ação, como SetWeather = { cooldown = 500, maxBurst = 10, window = 60000 }Limite de pedidos por jogador: ms entre pedidos, máximo por janela e janela em ms

Para programadores ​

Exports de servidor:

lua
exports.time_system:GetWeather()       -- clima atual
exports.time_system:GetWeatherState()  -- estado do clima
exports.time_system:GetTime()          -- { hour, minute }
exports.time_system:GetTimeState()     -- estado da hora
exports.time_system:GetSchedules()     -- etapas da rotação
exports.time_system:GetScheduleState() -- { enabled, currentIndex, lastTick, gameMinute }

Exports de cliente:

lua
exports.time_system:PauseSync("EXTRASUNNY") -- pausa a sincronia. O clima é opcional
exports.time_system:ResumeSync()
exports.time_system:Lock(19, 0, "EXTRASUNNY") -- trava hora e clima neste cliente
exports.time_system:Unlock()
exports.time_system:IsLocked()
exports.time_system:GetZoneWeather()

Pausas e travas são liberadas quando o script que as pediu é parado.

GlobalState.Hours, Minutes, Weather e Blackout espelham o estado. Escrever neles pelo servidor também muda a hora e o clima. Weather é ignorado com o clima travado ou com valor fora de WeatherTypes.

Problemas comuns ​

MensagemCausa
Você não tem permissão para isso.O jogador não tem grupo de AdminGroups
Calma: muitos pedidos seguidos. Espere um instante.Passou do limite de RateLimits
Espere a transição do clima atual terminar.Ainda há uma transição em andamento
O raio mínimo da zona é 200 m.Raio abaixo de MinZoneRadius
A etapa precisa durar pelo menos 10 segundos.Duração menor que 10 segundos na rotação