Blog
FiveM Script Yaptırmak: Siparişten Önce Bilinmesi Gerekenler
Yayın tarihi:
Önce sunucunuzun altyapısını yazın
Script sunucudaki çerçeveyle (ESX, QBCore, Qbox) ve envanterle (ox_inventory, qb-inventory ya da başka bir envanter) konuşur. Siparişte bunları ve kullandığınız sürümleri yazmak işin yarısıdır; bilinmezse script ya hiç çalışmaz ya da sonradan bir köprü yazılması gerekir.
Özel bir envanter ya da değiştirilmiş bir çerçeve kullanıyorsanız bunu baştan söyleyin. İyi yazılmış bir script bu bağlantıyı tek bir dosyada toplar; sunucu değişince yalnız o dosya uyarlanır.
Resmon: script sunucuyu ne kadar yoruyor
Resmon, bir scriptin oyuncunun bilgisayarında ne kadar işlemci zamanı harcadığını milisaniye cinsinden gösterir. Her karede çalışan gereksiz döngüler bu değeri yükseltir ve onlarca script üst üste binince oyuncu bunu kare düşüşü olarak hisseder.
Satıcıdan oyunda ölçülmüş resmon değerini isteyin: boşta, kullanımdayken ve en yoğun anda. Gunrack için test sunucumuzda ölçtüğümüz değer yürürken 0.00 ms, dolu raflı araçta 0.01 ms; her karede çalışan bir döngü yerine 300 ms'de bir hafif kontrol yapıyor.
Güvenlik: istemciye güvenmeyen script
FiveM'de oyuncunun bilgisayarı değiştirilebilir. Eşya veren, para ekleyen ya da envanteri değiştiren her işlem sunucuda yeniden kontrol edilmezse hile ile eşya kopyalanabilir. Siparişte "hangi işlemler sunucuda doğrulanıyor?" sorusunu mutlaka sorun.
Gunrack'te her koyma ve alma isteğinde meslek, araç, oyuncunun oturduğu koltuk, mesafe ve envanterde gerçekten ne olduğu sunucuda kontrol edilir; istekler sınırlanır, miktarlar sunucuda kırpılır.
-- Eşya ve miktar istemciden geliyor:
-- hile menüsü sınırsız eşya isteyebilir
RegisterNetEvent('rack:take', function(item, count)
AddItem(source, item, count)
end)-- Basitleştirilmiş örnek
RegisterNetEvent('rack:take', function(rackId, item, count)
local src = source
local rack = Racks[rackId]
-- Bu rafı kullanabilecek meslekte mi?
if not rack or not HasJob(src, rack.job) then return end
-- Rafın yanında mı?
local pos = GetEntityCoords(GetPlayerPed(src))
if #(pos - rack.coords) > 3.0 then return end
-- Miktar sunucuda kırpılır: raftakinden fazlası alınamaz
count = math.floor(tonumber(count) or 0)
count = math.min(count, rack.items[item] or 0)
if count <= 0 then return end
rack.items[item] = rack.items[item] - count
AddItem(src, item, count)
end)Kod kilidi ve açık dosyalar
Satılan FiveM scriptlerinin çoğu Cfx asset escrow ile kod kilitli gelir ve Cfx.re hesabınıza tanımlanır. Bu, scriptin izinsiz dağıtılmasını engeller; ama sunucunuza göre değiştirmeniz gereken dosyaların açık olması gerekir.
Almadan önce hangi dosyaların açık kaldığını sorun. Genelde ayar dosyası (config.lua), dil dosyaları ve çerçeve ile envanter köprüleri açık olmalıdır. Gunrack'te bu dosyaların hepsi açıktır.
Dil, ayarlar ve teslim
Sunucunuz Türkçe ise scriptin dil dosyasıyla gelmesi, değilse kolayca dil eklenebilmesi önemlidir. Meslekler, araç modelleri, tuşlar ve eşya adları da koda gömülü değil, ayar dosyasında olmalıdır.
Teslimde script Cfx.re portalındaki hesabınıza eklenir; klasörü resources içine koyup başlatma satırını eklersiniz. Kurulumda yardım ya da sunucunuza özel ayar gerekirse bunu da baştan konuşun.
Hazır script mi, özel script mi?
İhtiyacınızı karşılayan hazır bir script varsa en hızlı yol odur; ayarlarla sunucunuza uydurulur. Sunucunuza özgü bir sistem istiyorsanız özel script yazdırmak gerekir. İki durumda da yukarıdaki sorular aynıdır.
Aklınızdaki sistem için bize yazabilirsiniz: altyapınızı ve istediğiniz akışı anlatmanız yeterli.
Ürün
GunrackFiveM için araç silah rafı. Memurlar silah ve mermiyi departman araçlarında saklar.
İlgili hizmet
FiveM Script Yaptırma