Script LUA, Mods FiveM grátis, Scripts FiveM grátis

Sincronização em tempo real FiveM

Script em tempo real FiveM

Este tutorial guiará você pela criação de um script FiveM que sincroniza o relógio do jogo com o tempo do mundo real. Isso garante que o ambiente do jogo reflita o tempo real, aumentando o realismo para os jogadores.

Abordaremos scripts do lado do servidor e do lado do cliente, adicionando funcionalidades para iniciar e parar a sincronização e configurando o recurso para seu servidor FiveM.


Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

  • Acesso ao servidor FiveM: Você precisa de acesso administrativo ao seu servidor FiveM para adicionar scripts.
  • Conhecimento básico de Lua: A familiaridade com o script Lua ajudará você a entender e personalizar o script.
  • Editor de texto: Software como Visual Studio Code, Sublime Text ou Notepad++ para editar arquivos de script.

Configurando a pasta de recursos

  1. Navegue até o seu diretório de recursos:Localize o recursos pasta no diretório do seu servidor FiveM. Isso normalmente é encontrado em:bashCode copierensua-pasta-do-servidor-fivem/recursos/
  2. Criar uma nova pasta de recursos:Dentro do recursos pasta, crie uma nova pasta chamada em tempo real.bashCode copiarsua-pasta-do-servidor-fivem/recursos/tempo-real/
  3. Navegue até o em tempo real Pasta:Esta pasta conterá todos os scripts e arquivos de configuração necessários para a sincronização em tempo real.

Criando o script do lado do servidor (servidor.lua)

  1. Criar servidor.lua:Dentro do em tempo real pasta, crie um novo arquivo chamado servidor.lua.
  2. Adicione o seguinte código a servidor.lua:luaCode copiarRegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function() hora local = tonumber(os.date("%H")) minuto local = tonumber(os.date("%M")) segundo local = tonumber(os.date("%S")) TriggerClientEvent("realtime:event", fonte, hora, minuto, segundo) fim) Explicação:
    • RegistrarNetEvent: Registra um evento de rede denominado tempo real:evento.
    • Adicionar manipulador de eventos:Define o que acontece quando o tempo real:evento é acionado.
    • os.data: Recupera a hora atual do sistema (hora, minuto, segundo).
    • Evento de gatilhoCliente: Envia os dados de tempo para o cliente que disparou o evento.

Criando o script do lado do cliente (cliente.lua)

  1. Criar cliente.lua:Dentro do em tempo real pasta, crie um novo arquivo chamado cliente.lua.
  2. Adicione o seguinte código a cliente.lua:luaCode copiar-- Define a duração de um minuto no jogo em milissegundos SetMillisecondsPerGameMinute(60000) -- 60.000 ms = 1 minuto do mundo real RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) NetworkOverrideClockTime(hour, minute, second) end) -- Aciona o evento do servidor para iniciar a sincronização TriggerServerEvent("realtime:event") Explicação:
    • DefinirMilissegundosPorMinutoDeJogo: Define quanto tempo dura um minuto no jogo. Configurando para 60000 faz com que 1 minuto no jogo seja igual a 1 minuto no mundo real.
    • RegisterNetEvent e AdicionarEventHandler:Escuta o tempo real:evento do servidor e atualiza o relógio do jogo de acordo.
    • NetworkOverrideClockTime: Substitui o relógio do jogo para corresponder ao horário real recebido do servidor.
    • Evento do TriggerServer: Inicia a sincronização acionando o evento do servidor.

Adicionando uma funcionalidade de parada

Para permitir a ativação e desativação da sincronização em tempo real, adicionaremos funções para iniciar e interromper a sincronização.

  1. Atualizar cliente.lua com funcionalidade de parada:luaCode copiarlocal syncActive = true local syncThread = nil -- Função para iniciar a sincronização function StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Aguarde 1 minuto antes do próximo fim da sincronização end) end end -- Função para parar a sincronização function StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- Em Lua, não há uma maneira direta de matar uma thread. -- Usar um sinalizador para sair do loop efetivamente interrompe a thread. syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Inicia a sincronização no início do recurso StartRealTimeSync() -- Exemplo: Comando para alternar a sincronização RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Sincronização em tempo real interrompida.") else StartRealTimeSync() print("Sincronização em tempo real iniciada.") end end, false) Explicação:
    • sincronizarAtivo: Um sinalizador para determinar se a sincronização está ativa.
    • IniciarRealTimeSync: Inicia um loop que solicita atualizações de tempo do servidor a cada minuto.
    • PararRealTimeSync: Interrompe a sincronização definindo o sinalizador como falso.
    • RegistrarComando: Adiciona um comando (/toggleSincronização de tempo) que os jogadores podem usar para ativar ou desativar a sincronização.

Criando o manifesto de recursos (fxmanifest.lua)

Cada recurso FiveM requer um arquivo de manifesto que define seus metadados e dependências.

  1. Criar fxmanifest.lua:Dentro do em tempo real pasta, crie um novo arquivo chamado fxmanifest.lua.
  2. Adicione o seguinte código a fxmanifest.lua: fx_version 'cerulean' jogo 'gta5' autor 'YourName' descrição 'Script de sincronização em tempo real para FiveM' versão '1.0.0' server_script 'server.lua' client_script 'client.lua'
  3. Explicação:
    • versão_fx: Especifica a versão do manifesto FiveM. cerúleo é a mais recente até o momento em que este artigo foi escrito.
    • jogo: Indica o jogo para o qual o recurso é destinado (gta5).
    • autor, descrição, versão: Metadados sobre seu recurso.
    • script_do_servidor e script_do_cliente: Especifica os scripts do servidor e do cliente a serem carregados.

Iniciando o recurso no seu servidor

  1. Edite a configuração do seu servidor:Abra o arquivo de configuração do seu servidor, normalmente chamado servidor.cfg.
  2. Adicione o recurso à configuração:Adicione a seguinte linha para garantir que em tempo real recurso começa com o servidor:rubyCode copiagarantir tempo real Observação:Se você estiver usando começar em vez de garantir, você pode usar: começar em tempo real
  3. Salve e reinicie seu servidor:Depois de salvar as alterações em servidor.cfg, reinicie seu servidor FiveM para carregar o novo recurso.

Download completo do recurso

Para sua conveniência, aqui está o conjunto completo de arquivos que você precisa criar para o em tempo real recurso.

1. servidor.lua

RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function() hora local = tonumber(os.date("%H")) minuto local = tonumber(os.date("%M")) segundo local = tonumber(os.date("%S")) TriggerClientEvent("realtime:event", fonte, hora, minuto, segundo) fim)

2. cliente.lua

local syncActive = true local syncThread = nil -- Função para iniciar a sincronização function StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Aguarde 1 minuto antes do próximo fim da sincronização end) end end -- Função para parar a sincronização function StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- Em Lua, threads são cooperativas; definir syncActive como false interromperá o loop syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Inicia a sincronização no início do recurso StartRealTimeSync() -- Exemplo: Comando para alternar a sincronização RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Sincronização em tempo real interrompida.") else StartRealTimeSync() print("Sincronização em tempo real iniciada.") end end, false)

3. fxmanifest.lua

fx_version 'cerulean' jogo 'gta5' autor 'YourName' descrição 'Script de sincronização em tempo real para FiveM' versão '1.0.0' server_script 'server.lua' client_script 'client.lua'

Roteiro completo

Aqui você pode baixar o script que acabamos de criar:

https://github.com/HiFiveM/fivem-realtime/archive/refs/heads/main.zip

Github

Você criou com sucesso um recurso FiveM que sincroniza o relógio do jogo com o tempo do mundo real. Este script aprimora a experiência de jogo ao garantir que o ambiente do jogo reflita o tempo real, adicionando uma camada de realismo para os jogadores.

Você pode personalizar ainda mais o script ajustando intervalos de sincronização, adicionando mais comandos ou integrando-o com outros recursos do servidor.

Sinta-se à vontade para expandir essa base para atender às necessidades específicas do seu servidor!

autor-avatar

Sobre Luke

Eu sou Luke, sou um gamer e adoro escrever sobre FiveM, GTA e roleplay. Eu administro uma comunidade de roleplay e tenho cerca de 10 anos de experiência em administração de servidores.

Deixe um comentário