Bloga Geri Dön
Tutorial8 dk. okuma

FiveM Araç Modifiye Dükkanı: Doğru Şekilde LS Customs Scripti Geliştirme

FiveM sunucunuzda kusursuz bir modifiye dükkanı işletin. QBCore ve ESX için jantlar, motor yükseltmeleri, boya ve en iyi özel LS Customs script'leri.

Agency Scripts

Agency Scripts Kurucusu ve Baş Geliştiricisi

Roleplay Bağlamında Araç Modifiyesi

Araç özelleştirmesi, her FiveM roleplay sunucusundaki en popüler özelliklerden biridir. Oyuncular araçlarına ciddi zaman ve para yatırır, bir tuning atölyesi ise performans yükseltmeleri, görsel modifikasyonlar, özel boya işleri ve satış sonrası parçalarla araçlarını kişiselleştirme olanağı tanır. İyi tasarlanmış bir tuning sistemi, GTA'nın yerleşik araç modifikasyon native fonksiyonlarını bir menü üzerinden sunmaktan çok daha fazlasını yapar. Oyuncular tarafından işletilen tamirhaneleri, ekonomi dengeleyici işlevi gören fiyatlandırma yapılarını, gerçekçi bekleme süreleri oluşturan montaj zamanlayıcılarını ve parçaların farklı tedarikçilerden değişken kalite seviyelerinde temin edilebildiği bir parça pazarını içeren eksiksiz bir ekosistem yaratır. Tuning atölyesi, araba tutkunlarının toplandığı, tamircilerin itibar kazandığı ve modifiye edilmiş her aracın sahibinin zevki ve bütçesi hakkında bir hikaye anlattığı bir sosyal merkeze dönüşür.

GTA Araç Modifikasyon Native'lerini Anlamak

GTA V, belirli modifikasyon yuvalarına yükseltmeler uygulamanıza olanak tanıyan bir dizi native fonksiyon aracılığıyla araç modifikasyonlarını kullanıma sunar. Her aracın sayısal indekslerle tanımlanan bir dizi mod türü vardır: motor yükseltmeleri indeks 11'i, frenler indeks 12'yi, şanzıman indeks 13'ü, süspansiyon indeks 15'i kullanır; rüzgarlık, tampon ve marşpiyel gibi görsel parçalar ise 0 ile 10 arasındaki indeksleri kullanır. Bu SetVehicleMod native, o araç modeli ve mod türü için mevcut seçeneklerden belirli bir modifikasyonu uygular. Her araç her modifikasyon kategorisini desteklemez, bu nedenle kullanılabilirliği şunu kullanarak kontrol etmeniz gerekir: GetNumVehicleMods seçenekleri oyuncuya sunmadan önce. Boyama işleri şu gibi ayrı yerel işlevler (natives) kullanır: SetVehicleColours birincil ve ikincil renkler için, SetVehicleExtraColours sedefli renkler ve jant renkleri için ve SetVehicleCustomPrimaryColour özel RGB değerleri için:

-- Mod type indices reference
local ModTypes = {
    spoiler = 0,
    front_bumper = 1,
    rear_bumper = 2,
    side_skirt = 3,
    exhaust = 4,
    frame = 5,
    grille = 6,
    hood = 7,
    fender = 8,
    right_fender = 9,
    roof = 10,
    engine = 11,
    brakes = 12,
    transmission = 13,
    horns = 14,
    suspension = 15,
    armor = 16,
    turbo = 18,
    xenon = 22,
    front_wheels = 23,
    back_wheels = 24,
    plate_holder = 25,
    vanity_plates = 26,
    trim = 27,
    ornaments = 28,
    dashboard = 29,
    dial = 30,
    door_speaker = 31,
    seats = 32,
    steering_wheel = 33,
    shifter_leavers = 34,
    plaques = 35,
    speakers = 36,
    trunk = 37,
    hydraulics = 38,
    engine_block = 39,
    air_filter = 40,
    struts = 41,
    arch_cover = 42,
    aerials = 43,
    trim2 = 44,
    tank = 45,
    windows = 46,
    livery = 48,
}

function GetAvailableMods(vehicle, modType)
    local count = GetNumVehicleMods(vehicle, modType)
    local mods = {}
    for i = 0, count - 1 do
        table.insert(mods, {
            index = i,
            label = GetModTextLabel(vehicle, modType, i) or ('Option ' .. (i + 1)),
        })
    end
    return mods
end

Tuning Shop Yapılandırması

Mevcut hizmetleri, fiyat çarpanları ve sundukları modifikasyon kategorileriyle birlikte tuning dükkanı konumlarını yapılandırın. Her dükkanın her hizmeti sunması gerekmez. Vinewood bölgesindeki lüks bir modifiye atölyesi, daha yüksek fiyatlar ancak daha iyi kaliteyle lüks boya işleri ve premium görsel modifikasyonlarda uzmanlaşabilir. South LS bölgesindeki sokak düzeyinde bir garaj ise uygun fiyatlı performans parçalarına ve temel kaporta işlerine odaklanabilir. Bu farklılaşma, oyuncuların farklı dükkanları ziyaret etmesi için sebepler yaratır ve her işletmenin roleplay kimliğini destekler. Her dükkan için oyuncunun aracını içeri sürdüğü bir araç giriş noktası, modifikasyon önizlemesi için bir kamera konumu ve isteğe bağlı olarak garaj ortamı için bir iç mekan MLO'su içeren fiziksel bir konum gerekir:

Config.TuningShops = {
    ['benny_motorworks'] = {
        label = "Benny's Original Motor Works",
        coords = vector3(-205.67, -1312.58, 31.30),
        vehicleSpot = vector4(-211.89, -1320.88, 31.09, 178.94),
        camOffset = vector3(0.0, 5.5, 1.5),
        blipSprite = 72,
        categories = {'performance', 'visual', 'paint', 'wheels', 'lights', 'livery'},
        priceMultiplier = 1.0,
        restrictedTo = nil,  -- Open to all
    },
    ['ls_customs'] = {
        label = 'LS Customs - Burton',
        coords = vector3(-347.55, -133.00, 39.01),
        vehicleSpot = vector4(-339.20, -136.73, 39.01, 116.89),
        camOffset = vector3(0.0, 5.0, 1.5),
        blipSprite = 72,
        categories = {'performance', 'visual', 'paint', 'wheels'},
        priceMultiplier = 0.85,
        restrictedTo = nil,
    },
}

Config.ModPrices = {
    engine = {1500, 3500, 6000, 10000},       -- Level 1-4
    brakes = {1000, 2500, 4500, 7500},
    transmission = {1200, 3000, 5500, 9000},
    turbo = {15000},
    suspension = {800, 1500, 2500, 4000},
    armor = {2500, 5000, 10000, 17500, 25000},
    spoiler = 2000,       -- Flat price per option
    front_bumper = 1800,
    rear_bumper = 1500,
    side_skirt = 1200,
    exhaust = 1000,
    hood = 2500,
    roof = 1500,
    paint_standard = 500,
    paint_metallic = 1500,
    paint_custom_rgb = 5000,
    wheels = 3000,
    xenon = 3000,
    livery = 2500,
}

Gerçek Zamanlı Araç Önizleme Sistemi

Oyuncuların bir satın alma işlemi yapmadan önce araçlarındaki modifikasyonları görmeleri gerekir. Oyuncu seçeneklere göz atarken seçilen modifikasyonları araca geçici olarak uygulayan, ardından oyuncu iptal ederse tüm değişiklikleri geri alan veya yalnızca satın alınan modifikasyonları uygulayan canlı bir önizleme sistemi uygulayın. Oyuncu modifiye menüsüne girdiğinde mevcut araç özelliklerini anlık bir görüntü olarak kaydedin. Farklı seçeneklere göz atarken değişikliğin anında görünmesi için araç modu native fonksiyonlarını kullanarak her modifikasyonu geçici olarak uygulayın. Oyuncu aynı kategoride farklı bir seçenek seçerse yenisini uygulamadan önce önceki geçici modu geri alın. Oyuncu satın almayı onayladığında modifikasyon kalıcı hale gelir ve aracın veritabanı kaydına kaydedilir. İptal ederse aracı kaydedilen anlık durumuna geri yükleyin. Önizleme sırasında oyun kamerasını aracın etrafında dönecek şekilde konumlandırın, böylece oyuncu bakış açısını döndürebilir ve modifikasyonları her açıdan inceleyebilir:

local originalMods = {}

function SaveVehicleSnapshot(vehicle)
    originalMods = QBCore.Functions.GetVehicleProperties(vehicle)
end

function PreviewMod(vehicle, modType, modIndex)
    SetVehicleMod(vehicle, modType, modIndex, false)
end

function RevertToSnapshot(vehicle)
    if originalMods then
        QBCore.Functions.SetVehicleProperties(vehicle, originalMods)
    end
end

function SetupTuningCamera(vehicle, shopConfig)
    local coords = GetEntityCoords(vehicle)
    local camCoords = coords + shopConfig.camOffset

    tuningCam = CreateCam('DEFAULT_SCRIPTED_CAMERA', true)
    SetCamCoord(tuningCam, camCoords.x, camCoords.y, camCoords.z)
    PointCamAtEntity(tuningCam, vehicle, 0.0, 0.0, 0.0, true)
    SetCamActive(tuningCam, true)
    RenderScriptCams(true, true, 1000, true, false)
end

Mekanik Mesleği Entegrasyonu

Modifiye dükkanını bir mekanik meslek sistemiyle entegre ederek otomatik bir menüden oyuncu odaklı bir işletmeye dönüştürün. Görevdeki mekanikler, müşteriler için araç modifikasyonları gerçekleştirerek hizmet odaklı bir roleplay etkileşimi oluşturabilir. Bir müşteri aracını dükkana getirdiğinde, daha yüksek bir fiyata self-servis kiosku kullanabilir veya indirimli tarife için bir mekanik talep edebilir. Mekanik, gelen servis taleplerini tablet arayüzünde görür, işi kabul eder, istenen modifikasyonları müşteriyle görüşür ve çalışmayı gerçekleştirir. Montaj sırasında mekaniğin araç üzerinde çalışmasını simüle etmek için uygun animasyonlar ve partikül efektleri oynatın. Motor değişimlerinin birkaç dakika sürmesi ve boya işlerinin daha kısa sürmesi gibi, modifikasyonun karmaşıklığına göre değişen montaj süreleri ekleyin. Mekanikler tamamladıkları her işten komisyon kazanır: bu da onları iyi hizmet vermeye ve müşteri kitlesi oluşturmaya teşvik eder. Mekanik kariyerinde bir ilerleme sistemi oluşturmak için tamamlanan toplam iş, müşteri memnuniyet puanları ve uzmanlık alanları gibi mekanik istatistiklerini takip edin.

Özel Boya ve Kaplama Sistemi

RGB renk seçicileri, metalik ve mat yüzeyler, sedefli katmanlar ve özel araç kaplamaları içeren özel bir boya sistemi uygulayarak standart GTA renk paletinin ötesine geçin. NUI renk seçici, oyuncuların hayal edebileceği her rengi seçmesine olanak tanıyan tam spektrumlu bir renk tekerleği veya HSL kaydırıcısı göstermelidir. Seçilen rengi şununla uygulayın: SetVehicleCustomPrimaryColour ve SetVehicleCustomSecondaryColour renk seçiciden alınan RGB değerleriyle. Kaplama efektleri için araç livery sistemini özel doku değişimiyle birleştirerek araç gövdesine desenler, karbon fiber dokular veya markalı tasarımlar uygulayın. Birincil ve ikincil gövde panellerinin farklı renklerde olabildiği iki tonlu boya seçeneği sunarak özgün renk kombinasyonları oluşturun. Özel renklerin oturumlar ve sunucu yeniden başlatmaları arasında kalıcı olması için tam RGB değerlerini araç veritabanı kaydına kaydedin. Hizmetin premium niteliğini yansıtmak ve etkili bir para çıkışı sağlamak için özel boya işlemlerini standart renklerden daha yüksek fiyatlandırın.

Performans Tuning ve Dyno Testi

Performans modifikasyonları, sadece bir menü seçeneği seçip anında sonuç almaktan daha fazla derinliği hak eder. Oyuncuların modifikasyon öncesi ve sonrasında araçlarının performans istatistiklerini test edebilecekleri bir dyno test özelliği ekleyin. Dyno testi, aracın tam gaz çalışmasını simüle eder ve tahmini beygir gücü, tork, azami hız ve hızlanma süresi gibi metrikleri görüntüler. Kurulu modifikasyonlara göre bu değerleri hesaplamak için oyunun araç handling verilerini kullanın. Sonuçları, öncesi ve sonrası değerleri çubuk grafikler veya sayısal okumalarla karşılaştıran sade bir NUI panelinde görüntüleyin. Bu, oyunculara her yükseltmenin araç performansını nasıl etkilediği konusunda somut geri bildirim sağlayarak satın alma kararını daha bilinçli ve tatmin edici hale getirir. Ek bir gerçekçilik katmanı için; oyuncuların gaz tepkisi, vites oranları ve fren dengesi gibi parametreleri bir kaydırıcı arayüzü üzerinden hassasça ayarlayabildiği ve değişikliklerin aracın gerçek handling özelliklerine yansıtıldığı bir tuning chip veya ECU remap sistemi uygulayın, kullanılan: SetVehicleHandlingFloat native'ler.

Araç Modifikasyonlarını Kaydetme ve Kalıcı Hale Getirme

Bir oyuncunun aracına uygulanan her modifikasyon, oturumlar arasında korunması için veritabanına kaydedilmelidir. Çoğu FiveM framework'ü, araç özelliklerini oyuncu araçları tablosunda bir JSON blob olarak saklar. Bir modifikasyon uygulanıp ücreti ödendiğinde, kayıtlı araç özelliklerini yeni mod değerleriyle güncelleyin. Araç garajdan çıkarıldığında, kayıtlı tüm modifikasyonları framework'ün SetVehicleProperties function. Modifikasyon oturumu sırasında sunucunun çökmesi ve aracın tutarsız bir durumda kalması gibi kısmi kaydetme durumlarındaki uç senaryoları yönetin. Ödemenin işlendiği ve modifikasyonun tek bir atomik veritabanı işleminde kaydedildiği bir transaction deseni kullanın. Adımlardan herhangi biri başarısız olursa, oyuncudan modifikasyonu almadan ücret kesilmesini veya oyuncunun ücretsiz modifikasyon almasını önlemek için her ikisini de geri alın. Yönetici incelemesi ve olası bir açık tespit edildiğinde geri almayı desteklemek için tüm modifikasyonları zaman damgaları ve fiyatlarıyla kaydedin.

Yasa Dışı Modifikasyonlar ve Sokak Yarışı

Yalnızca yeraltı modifiye atölyelerinde sunulan yasa dışı modifikasyonlar uygulayarak suç odaklı bir oynanış katmanı ekleyin. Azot protoksit (nitrous) enjeksiyonu geçici bir hız artışı sağlar, ancak aşırı kullanılırsa motoru aşırı ısıtabilir ve hasar verebilir. Yasal beygir gücü sınırını aşan motor değişimleri, yakalanması durumunda aracı polis denetimine ve trafikten men edilmeye (impound) tabi tutar. Sökülmüş plakalar, yasal ton yüzdesinin üzerindeki karartılmış camlar ve hidrolik süspansiyon modifikasyonlarının tümü polise trafik çevirmesi için makul bir neden sunar. Bir araçtaki hangi modifikasyonların yasa dışı olarak sınıflandırıldığını takip edin ve bu bilgiyi bir araç muayene mekaniği aracılığıyla polise aktarın. Memurlar, aracın modifikasyon durumunu kontrol etmek için el tipi bir tarayıcı kullanabilir ve ceza kesilmesini veya aracın bağlanmasını gerektiren yasa dışı parçaları ortaya çıkarabilir. Bu durum, modifiye kültürü ile kolluk kuvvetleri arasında sunucunun rol yapma ekosistemini zenginleştiren bir kedi fare dinamiği yaratır.

Eşleşen script

Sunucunuz için hazır, güncellemeler dahil.

Başlamaya Hazır mısınız?

Scriptleri mağazamızdan edinin veya destek, güncellemeler ve gelecek yeniliklere göz atmak için Discord'a katılın.