QBCore'da iş nasıl eklenir: shared/jobs.lua, dereceler ve /setjob

QBCore veya QBox'a özel iş ekleyin: defaultDuty, offDutyPay ve dereceler ile shared/jobs.lua yapısı, /setjob komutu ve Player.PlayerData.job okuma.

QBCore'da iş bir Lua dosyasındaki bir blok, veritabanı satırı değil. Bloğu ekleyin, çekirdeği yeniden başlatın ve işi bir oyuncuya ayarlayın. Bu kılavuz, QBCore ve QBox için yapıyı, komutu ve kodda işi nasıl okuyacağınızı gösterir.

Yapı

qb-core/shared/jobs.lua açın. İşler QBShared.Jobs tablosundaki iş adına göre tuşlandırılmış girişlerdir. Sizinkinizi ekleyin:

lua
['mechanic'] = {
    label = 'Mechanic',
    defaultDuty = true,
    offDutyPay = false,
    grades = {
        ['0'] = { name = 'Recruit', payment = 50 },
        ['1'] = { name = 'Mechanic', payment = 75 },
        ['2'] = { name = 'Boss', payment = 120, isboss = true },
    },
},

Her bölüm ne anlamına gelir:

Alan Anlam
Anahtar (mechanic) Kod ve /setjob'da kullanılan iş adı: küçük harf, boşluk yok
label Oyuncuların gördüğü ad
defaultDuty Oyuncular işi aldığında görevde başlasalar true
offDutyPay Oyuncu görevden uzak olsa bile iş ödülü yaparsın ise true
grades Sıralar, seviyelerine göre tuşlandırılmış
name Sıralamanın ekran adı
payment Bu sıralamanın her maaş çeki ödemesi
isboss Sıralamayı boss sırası olarak işaretlersen true

İki kural:

  • Derece tuşları QBCore'da dizelerdir: ['0'], ['1']. '0' ile başlayın boşluk yok.
  • Dosyada zaten bulunan işlere bakın, örneğin police ve şekillerini kopyalayın. Bazı işler diğer betiklerin bunları gruplandırmak için kullandığı ekstra type alanı taşır ve dosya sürümünüzün ne desteklediğini gösterir.

Dikkat: jobs.lua'da eksik virgül veya ayraç qb-core yüklenmesini durdurur ve bununla birlikte ona bağlı tüm betikler.

Yeniden başlatın ve işi ayarlayın

Çekirdek dosyayı başlangıçta okur:

text
restart qb-core

Ardından, yönetici olarak, oyunda veya konsolda:

text
/setjob <player id> mechanic 1

Değerler oyuncu kimliği, iş anahtarı ve derece numarasıdır. Komut reddedilirse, yönetici izniniz yoktur: ACE permissions for admins bölümüne bakın.

Betiklerde işi okuyun

Sunucuda:

lua
local QBCore = exports['qb-core']:GetCoreObject()

RegisterNetEvent('my_script:doWork', function()
    local src = source
    local Player = QBCore.Functions.GetPlayer(src)
    if not Player then return end

    local job = Player.PlayerData.job
    if job.name ~= 'mechanic' then
        return TriggerClientEvent('QBCore:Notify', src, 'You are not a mechanic', 'error')
    end

    if not job.onduty then
        return TriggerClientEvent('QBCore:Notify', src, 'Go on duty first', 'error')
    end

    -- allowed
end)

Player.PlayerData.job name, label, onduty, isboss, payment ve sıralamanın name ve level'i ile bir grade tablosu tutar. Sıralamanın numarası için job.grade.level kullanın.

Koddan işi değiştirmek için:

lua
Player.Functions.SetJob('mechanic', 1)

Burada QBCore nil ise, attempt to index a nil value (global 'QBCore') bölümüne bakın.

İstemcide

lua
local QBCore = exports['qb-core']:GetCoreObject()
local PlayerData = {}

RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
    PlayerData = QBCore.Functions.GetPlayerData()
end)

RegisterNetEvent('QBCore:Client:OnJobUpdate', function(job)
    PlayerData.job = job
end)

Oyuncu yüklenmeden önce GetPlayerData().job okumak nil verir, bu nedenle OnPlayerLoaded bekleyin ve işi OnJobUpdate ile taze tutun.

QBox'ta

QBox'un çekirdeği qbx_core'dur ve işler dosyası qbx_core/shared/jobs.lua'dır. Yapı aynıdır: etiket, defaultDuty, offDutyPay ve grades. Dosyayı açın ve zaten içinde bulunan girişleri izleyin, çünkü QBox'un dosyası derece tuşlarının nasıl yazıldığı gibi detaylarda farklılık gösterebilir ve yeni sürümler alanlar ekleyebilir.

Düzenlendikten sonra qbx_core yeniden başlatın. Kod için, uyumluluk katmanı hala exports['qb-core']:GetCoreObject()'ı cevaplar ve QBox'un kendi dışa aktarımı:

lua
local player = exports.qbx_core:GetPlayer(source)
if player then
    print(player.PlayerData.job.name)
end

Boss menüsü ve fonlar

isboss = true ile bir derece sadece bayraktır. Bosun insanları işe almalarına ve şirket hesabını kullanmasına izin veren menü, genellikle yapılandırılacak kendi işler listesi olan yönetim kaynağınızdan gelir. Boss menüsü yeni işiniz için açılmazsa, bu kaynağın yeni işler listesinin işinin adını kontrol edin.

Yaygın sorunlar

  • /setjob tarafından iş bulunamadı. Çekirdek yeniden başlatılmadı veya anahtar yanlış yazılmış.
  • Çekirdeği düzenlendikten sonra başarısız. jobs.lua'da söz dizimi hatası. Konsolda ilk kırmızı satırı okunyun ve how to read a script error dosya ve satırda yardımcı olur.
  • Maaş alınmıyor. offDutyPay = false oyuncunun görevde olması gerektiği ve maaş aralığı çekirdeğin yapılandırmasından gelir.

Kontrol listesi

Belirtisi Çözüm
İş bulunamadı shared/jobs.lua'ya ekleyin ve qb-core veya qbx_core yeniden başlatın
Çekirdek başlamaz jobs.lua'da söz dizimi hatası; virgül ve ayraçları kontrol edin
Yanlış sıralaması Derece tuşları QBCore'da '0''da başlayan dizelerdir
Görevden uzakta ödeme yok offDutyPay = true ayarlayın veya görevde gidin
İş istemcide nil QBCore:Client:OnPlayerLoaded bekleyin
Boss menüsü yok isboss = true ayarlayın ve işi yönetim kaynağına ekleyin

Kısa yanıtlar

QBCore işleri nerede tanımlanır?

qb-core/shared/jobs.lua'da QBShared.Jobs girişleri olarak. QBox'ta dosya qbx_core/shared/jobs.lua'dır.

/setjob işin var olmadığını söylüyor, neden?

Çekirdek başlatıldığında dosyayı okur. Düzenlendikten sonra qb-core (veya qbx_core) yeniden başlatın ve iş adı ve derece numarasının dosyada var olduğunu kontrol edin.

isboss ne yapar?

Bir dereceyi bir boss dereceolarak işaretler. Boss menüleri ve yönetim betikleri, kimin işe alıp, kimin kovulabileceğine ve işin fonlarını kimin kullanabileceğine karar vermek için o bayrağı kontrol eder.

Bu sorunu yaşatmayan scriptler

Advanced BoostingTabletten araç boosting: D’den S+ sınıfına kontratlar, ekipler ve canlı sıra.Scripti gör →Shop CreatorBir dakikadan kısa sürede dükkân kurun — sahipler, çalışanlar, kasalar ve soygunlar dahil.Scripti gör →Pawn Shop Applb-phone içinde oyuncudan oyuncuya rehin pazarı.Scripti gör →

Okumaya devam edin