WhatsApp: 0546 401 33 90

15 dk ücretsiz görüşme →

Blog

FiveM Script Nasıl Yazılır? Lua ile İlk Script

FiveM scriptleri çoğunlukla Lua ile yazılır ve sunucuya bir klasör olarak eklenir. Aşağıda bir scriptin nasıl kurulduğunu, istemci ile sunucunun nasıl konuştuğunu ve en sık yapılan iki hatayı, kendi scriptlerimizden örneklerle anlattık.

Yayın tarihi:

1. Resource klasörü ve fxmanifest.lua

Her script, sunucunun resources klasöründe kendi klasörüdür; FiveM'de bunlara resource denir. Klasördeki fxmanifest.lua dosyası scripti tanıtır: fx_version, game 'gta5' ve hangi dosyaların istemcide, hangilerinin sunucuda çalışacağı. Sunucuya eklemek için server.cfg dosyasına ensure satırı yazılır.

2. İstemci ve sunucu

client klasöründeki kod oyuncunun bilgisayarında çalışır: ekrana çizim, tuşlar, oyuncunun karakteri. server klasöründeki kod sunucuda çalışır: para, eşya, veritabanı. Önemli kararlar her zaman sunucuda verilir.

3. Olaylar (event)

İstemci ile sunucu olaylarla konuşur. İstemci TriggerServerEvent ile sunucuya istek gönderir, sunucu RegisterNetEvent ile bu isteği dinler; sunucudan istemciye de TriggerClientEvent ile mesaj gider.

4. ESX, QBCore ve Qbox ile çalışmak

Para, meslek ve envanter, çatının kendi fonksiyonlarıyla yönetilir ve her çatıda bu fonksiyonların adları farklıdır. Birden çok çatıyı desteklemek için bu çağrılar tek bir köprü dosyasında toplanır; Gunrack'i ESX, QBCore ve Qbox'ta böyle çalıştırıyoruz.

5. Performans: resmon

En sık hata, her karede (saniyede 60 kez ve daha fazla) çalışan döngülerdir: oyuncu uzaktayken bile işlemciyi meşgul eder ve oyunu yavaşlatır. Döngü, oyuncu yakın değilken seyrek bakacak şekilde yazılmalı. Gunrack her karede çalışan bir döngü yerine 300 milisaniyede bir hafif bir kontrol yapıyor; oyunda resmon değeri yürürken 0,00 ms.

client/main.luaHer karede
-- Oyuncu uzaktayken bile saniyede
-- 60+ kez mesafe hesaplar
CreateThread(function()
    while true do
        Wait(0)
        local pos = GetEntityCoords(PlayerPedId())
        if #(pos - Config.Point) < 2.0 then
            DrawPointMarker()
        end
    end
end)
client/main.luaYakınken sık, uzakken seyrek
-- Basitleştirilmiş örnek
CreateThread(function()
    while true do
        local sleep = 500
        local pos = GetEntityCoords(PlayerPedId())
        if #(pos - Config.Point) < 10.0 then
            -- Yalnız yakındayken her karede çizer
            sleep = 0
            DrawPointMarker()
        end
        Wait(sleep)
    end
end)

6. Güvenlik: istemciye güvenmeyin

Oyuncunun bilgisayarındaki kod değiştirilebilir. Eşya veren ya da para ekleyen her işlem sunucuda yeniden kontrol edilmeli: oyuncunun mesleği, mesafesi ve envanterinde gerçekten ne olduğu. Bunun örnek kodunu "FiveM Script Yaptırmak" yazımızda gösterdik.

7. Satacaksanız: kod kilidi

Scripti satacaksanız Cfx.re'nin kod kilidiyle (escrow) koruyabilirsiniz; ayar dosyaları açık kalır, çekirdek kod kilitlenir. Kendi scriptlerimizi Tebex üzerinden bu şekilde satıyoruz.

Uğraşmak istemezseniz

Sunucunuza özel FiveM scripti yazıyoruz; özel bir script 1.500 TL'den başlıyor ve genelde 3-7 günde teslim ediliyor.

Ürün

Gunrack

FiveM için araç silah rafı. Memurlar silah ve mermiyi departman araçlarında saklar.

İlgili hizmet

FiveM Script Yaptırma

Fikrinizi anlatın, kapsamı ve bütçeyi birlikte netleştirelim. Hafta içi genelde bir iş günü içinde dönüş yapıyoruz.

  • Teklif ücretsiz
  • Hafta içi genelde bir iş günü içinde dönüş
  • Kapsam ve fiyat işe başlamadan net

ya da doğrudan yazın: contact@torpilstudio.com

WhatsApp: 0546 401 33 9015 dk ücretsiz görüşme ayarlayın →

Projenizi anlatın

ProjenizAdım 1 / 2

Ne yaptırmak istiyorsunuz?
Bütçeniz ne kadar? (isteğe bağlı)