WELCOME kuponu mevcut 31 Temmuz 2026'ya kadar ödeme sırasında WELCOME kodunu kullanın. WELCOME

FiveM Real-Time Sync – Free FiveM Mods

Ücretsiz bir komut dosyasını mı test ediyorsunuz?

Hızlı kontroller için ücretsiz komut dosyaları uygundur. Üretim sunucuları için, çerçeveye ve kullanım senaryosuna göre tam sunucu paketlerini veya ücretli, bakımı yapılan komut dosyalarını karşılaştırın.

Bu eğitim, oyun içi saati gerçek dünya saatiyle senkronize eden bir FiveM betiği oluşturmanız için size rehberlik edecektir. Bu, oyun ortamının gerçek zamanı yansıtmasını sağlayarak oyuncular için gerçekçiliği artırır.

Hem sunucu hem de istemci tarafı betik yazmayı, senkronizasyonu başlatma ve durdurma işlevselliğini eklemeyi ve FiveM sunucunuz için kaynağı ayarlamayı ele alacağız.


Ön koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • FiveM Sunucu Erişimi: You need administrative access to your FiveM server to add scripts.
  • Lua'nın Temel Bilgileri:Lua betiğine aşinalık, betiği anlamanıza ve özelleştirmenize yardımcı olacaktır.
  • Metin Editörü:Script dosyalarını düzenlemek için Visual Studio Code, Sublime Text veya Notepad++ gibi yazılımlar.

Kaynak Klasörünü Ayarlama

  1. Kaynaklar Dizininize gidin:Bulun kaynaklar FiveM sunucu dizininizdeki klasör. Bu genellikle şu adreste bulunur:bashCode kopierenyour-fivem-server-folder/kaynaklar/
  2. Yeni Bir Kaynak Klasörü Oluştur:İçinde kaynaklar klasör, adında yeni bir klasör oluşturun gerçek zamanlı.bashCode kopyalayour-fivem-server-folder/kaynaklar/gerçek zamanlı/
  3. Şuraya gidin: gerçek zamanlı Dosya:Bu klasör gerçek zamanlı senkronizasyon için gerekli tüm scriptleri ve yapılandırma dosyalarını içerecektir.

Sunucu Tarafı Komut Dosyasının Oluşturulması (sunucu.lua)

  1. Yaratmak sunucu.lua:İçinde gerçek zamanlı klasör, adında yeni bir dosya oluşturun sunucu.lua.
  2. Aşağıdaki Kodu Ekleyin sunucu.lua:luaCode kopyalaRegisterNetEvent("gerçek zamanlı:olay") AddEventHandler("gerçek zamanlı:olay", function() yerel saat = tonumber(os.date("%H")) yerel dakika = tonumber(os.date("%M")) yerel saniye = tonumber(os.date("%S")) TriggerClientEvent("gerçek zamanlı:olay", kaynak, saat, dakika, saniye) son) Açıklama:
    • KayıtNetEtkinliği: Adlı bir ağ olayını kaydeder gerçek zamanlı:olay.
    • OlayİşleyicisiEkle: Ne zaman olacağını tanımlar gerçek zamanlı:olay tetiklenir.
    • işletim sistemi.tarihi: Mevcut sistem saatini (saat, dakika, saniye) alır.
    • TetikleyiciİstemciOlay: Olayı tetikleyen istemciye zaman verisini gönderir.

İstemci Tarafı Komut Dosyasının Oluşturulması (istemci.lua)

  1. Yaratmak istemci.lua:İçinde gerçek zamanlı klasör, adında yeni bir dosya oluşturun istemci.lua.
  2. Aşağıdaki Kodu Ekleyin istemci.lua:luaCode kopyala-- Oyun içi bir dakikanın süresini milisaniye olarak ayarlayın SetMillisecondsPerGameMinute(60000) -- 60.000 ms = 1 gerçek dünya dakikası RegisterNetEvent("gerçek zamanlı:olay") AddEventHandler("gerçek zamanlı:olay", function(saat, dakika, saniye) NetworkOverrideClockTime(saat, dakika, saniye) end) -- Senkronizasyonu başlatmak için sunucu olayını tetikleyin TriggerServerEvent("gerçek zamanlı:olay") Açıklama:
    • OyunDakikasıBaşınaMilisaniyeAyarla: Oyun içi bir dakikanın ne kadar süreceğini tanımlar. Bunu 60000 Oyun içindeki 1 dakikayı gerçek dünyadaki 1 dakikaya eşitler.
    • RegisterNetEvent ve AddEventHandler: Dinler gerçek zamanlı:olay sunucudan alır ve oyun içi saati buna göre günceller.
    • AğGeçersizKılmaSaatiZamanı: Sunucudan alınan gerçek dünya saatiyle eşleşmesi için oyun içi saati geçersiz kılar.
    • TetikleyiciSunucuOlay: Sunucu olayını tetikleyerek senkronizasyonu başlatır.

Durdurma İşlevi Ekleme

Gerçek zamanlı senkronizasyonun açılıp kapatılmasına olanak sağlamak için senkronizasyonu başlatıp durduran işlevler ekleyeceğiz.

  1. Güncelleme istemci.lua Durdurma İşlevi ile:luaCode kopyalalocal syncActive = true local syncThread = nil -- Senkronizasyon fonksiyonunu başlatmak için fonksiyon StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Bir sonraki senkronizasyonun bitmesinden önce 1 dakika bekle end) end -- Senkronizasyonu durdurmak için fonksiyon StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- Lua'da bir iş parçacığını öldürmenin doğrudan bir yolu yoktur. -- Döngüden çıkmak için bir işaret kullanmak iş parçacığını etkili bir şekilde durdurur. syncThread = nil end end end RegisterNetEvent("gerçek zamanlı:olay") AddEventHandler("gerçek zamanlı:olay", function(saat, dakika, saniye) eğer syncActive ise NetworkOverrideClockTime(saat, dakika, saniye) end end) -- Kaynak başlangıcında senkronizasyonu başlat StartRealTimeSync() -- Örnek: Senkronizasyonu açıp kapatma komutu RegisterCommand("toggleTimeSync", function() eğer syncActive ise StopRealTimeSync() print("Gerçek zamanlı senkronizasyon durduruldu.") else StartRealTimeSync() print("Gerçek zamanlı senkronizasyon başladı.") end end, false) Açıklama:
    • senkronizeAktif: Senkronizasyonun etkin olup olmadığını belirleyen bir bayrak.
    • GerçekZamanlıEşitlemeyiBaşlat: Sunucudan her dakika zaman güncellemeleri isteyen bir döngü başlatır.
    • GerçekZamanlıEşitleme'yi Durdur: Bayrağı false olarak ayarlayarak senkronizasyonu durdurur.
    • KayıtKomutu: Bir komut ekler (/toggleTimeSync) oyuncuların senkronizasyonu açıp kapatmak için kullanabilecekleri bir özelliktir.

Kaynak Beyannamesinin Oluşturulması (fxmanifest.lua)

Every FiveM resource requires a manifest file that defines its metadata and dependencies.

  1. Yaratmak fxmanifest.lua:İçinde gerçek zamanlı klasör, adında yeni bir dosya oluşturun fxmanifest.lua.
  2. Aşağıdaki Kodu Ekleyin fxmanifest.lua: fx_version 'cerulean' oyun 'gta5' yazar 'Adınız' açıklama 'FiveM için Gerçek Zamanlı Senkronizasyon Komut Dosyası' sürüm '1.0.0' server_script 'server.lua' client_script 'client.lua'
  3. Açıklama:
    • fx_sürümü: FiveM bildiriminin sürümünü belirtir. gök mavisi yazının yazıldığı tarih itibariyle en son durum.
    • oyun: Kaynağın hangi oyun için olduğunu gösterir (gta5).
    • yazar, açıklama, sürüm: Kaynağınız hakkında meta veriler.
    • sunucu_komut_komutu ve istemci_komut_komutu: Yüklenecek sunucu ve istemci betiklerini belirtir.

Kaynağı Sunucunuzda Başlatma

  1. Sunucu Yapılandırmanızı Düzenleyin:Sunucunuzun yapılandırma dosyasını açın, genellikle şu şekilde adlandırılır: sunucu.cfg.
  2. Kaynağı Yapılandırmaya Ekle: Aşağıdaki satırı ekleyerek şunları sağlayın: gerçek zamanlı kaynak sunucuyla başlar:rubyCode kopierengerçek zamanlı olmasını sağlamak Not: Eğer kullanıyorsanız başlangıç yerine emin olmak, şunları kullanabilirsiniz: gerçek zamanlı başlat
  3. Sunucunuzu Kaydedin ve Yeniden Başlatın:Değişiklikleri kaydettikten sonra sunucu.cfgYeni kaynağı yüklemek için FiveM sunucunuzu yeniden başlatın.

Tam Kaynak İndirme

Kolaylık olması açısından, oluşturmanız gereken dosyaların tam seti aşağıdadır gerçek zamanlı kaynak.

1. sunucu.lua

RegisterNetEvent("gerçek zamanlı:olay") AddEventHandler("gerçek zamanlı:olay", function() yerel saat = tonumber(os.date("%H")) yerel dakika = tonumber(os.date("%M")) yerel saniye = tonumber(os.date("%S")) TriggerClientEvent("gerçek zamanlı:olay", kaynak, saat, dakika, saniye) son)

2. istemci.lua

yerel syncActive = true yerel syncThread = nil -- Senkronizasyon fonksiyonunu başlatmak için fonksiyon StartRealTimeSync() eğer syncActive değilse syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Bir sonraki senkronizasyonun bitmesinden önce 1 dakika bekle end) end -- Senkronizasyonu durdurmak için fonksiyon StopRealTimeSync() eğer syncActive ise syncActive = false eğer syncThread ise -- Lua'da, iş parçacıkları işbirlikçidir; syncActive'i false olarak ayarlamak döngüyü durduracaktır syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Kaynak başlangıcında senkronizasyonu başlat StartRealTimeSync() -- Örnek: Senkronizasyonu açıp kapatma komutu RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Gerçek zamanlı senkronizasyon durduruldu.") else StartRealTimeSync() print("Gerçek zamanlı senkronizasyon başladı.") end end, false)

3. fxmanifest.lua

fx_version 'cerulean' oyun 'gta5' yazar 'Adınız' açıklama 'FiveM için Gerçek Zamanlı Senkronizasyon Komut Dosyası' sürüm '1.0.0' server_script 'server.lua' client_script 'client.lua'

Tam Metin

Here you can download the script we’ve just created:

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

Github

Oyun içi saati gerçek dünya saatiyle senkronize eden bir FiveM kaynağı başarıyla oluşturdunuz. Bu komut dosyası, oyun ortamının gerçek zamanı yansıtmasını sağlayarak oyun deneyimini geliştirir ve oyuncular için bir gerçekçilik katmanı ekler.

Senkronizasyon aralıklarını ayarlayarak, daha fazla komut ekleyerek veya diğer sunucu özellikleriyle entegre ederek betiği daha da özelleştirebilirsiniz.

Sunucunuzun özel ihtiyaçlarına uyacak şekilde bu temeli genişletmekten çekinmeyin!

Luka
Luka

Ben Luke, bir oyuncuyum ve FiveM, GTA ve rol yapma hakkında yazmayı seviyorum. Bir rol yapma topluluğu yönetiyorum ve sunucuları yönetme konusunda yaklaşık 10 yıllık deneyimim var.

Articles: 436

Leave a Reply