Blog
FiveM Script Nasıl Yazılır? Lua ile İlk Script
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.
-- 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)-- 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
GunrackFiveM için araç silah rafı. Memurlar silah ve mermiyi departman araçlarında saklar.
İlgili hizmet
FiveM Script Yaptırma