İçeriğe geç
CXGdocs.KILAVUZLAR
Mağazaya dön
cxg-tattoosEntegrasyonlar
CXG DOCUMENTATION

Entegrasyonlar

cxg-tattoos, satın alma ücretlerini almak ve yönetici izinlerini denetlemek için farklı framework'lere bağlanabilir. Görünüm entegrasyonu, karakter yüklendiğinde veya skin değiştiğinde kaydedilmiş dövmeleri yeniden uygular. Her bölüm ayrı yapılandırılır.

Giriş, Kurulum, Yapılandırma, Katalog ve Arayüz bölümlerine de bakın.

Kullanılabilir framework'ler

SistemYapılandırma tanımlayıcısıVarsayılan kaynakÖdemelerİzinler
Qboxqbxqbx_coreEvetEvet
QBCoreqbcoreqb-coreEvetEvet
ESXesxes_extendedEvetEvet
Framework yokstandaloneUygulanamazÖzel callback veya ücretsiz satın almaACE veya özel denetim

auto ile kaynak, başlatılmış Qbox, QBCore veya ESX'i algılar; hiçbirini bulamazsa standalone kullanır. Sunucuda birden fazla framework etkinse veya kaynak adı varsayılandan farklıysa framework'i belirtebilirsiniz:

Kod
Config.Purchases.framework = 'qbx' -- auto | qbx | qbcore | esx | standalone
Config.Purchases.resources.qbx = 'qbx_core'
Config.Purchases.accounts = { 'cash', 'bank' }
Config.Purchases.esxAccountMap.cash = 'money'
Config.Purchases.esxAccountMap.bank = 'bank'
Config.Purchases.allowFreePurchases = false

Hesaplar belirtilen sırayla denenir. Ücret tek bir hesaptan tahsil edilir; bakiyesi yetmezse sıradaki hesap denenir. ESX'te esxAccountMap, cash değerini money hesap adına eşler.

Config.Purchases.reason ve refundReason, destekleyen provider'larda işlemlerin nedenini belirtir. Başlangıç değerleri tattoo-purchase ve tattoo-purchase-refund şeklindedir. allowFreePurchases seçeneği standalone adaptöründe tahsilatı atlamaya izin verir; diğer framework'lerdeki satın almaları ücretsiz yapmaz.

Framework olmadan ödeme

standalone modunda tryCharge ve refund callback'lerini sunucunuzun ekonomi kaynağına bağlayın. Satın almaları kabul etmek için iki callback de gereklidir: dövme kaydı başarısız olursa tahsilatı iade etmek gerekir.

Kod
Config.Purchases.framework = 'standalone'
Config.Purchases.standalone.tryCharge = function(source, totalAmount, context)
    -- Sustituye esta llamada por la API de economía de tu servidor.
    local charged, receipt = MyEconomy.charge(source, totalAmount, context)
    if charged then
        return true, receipt
    end
    return false, 'No tienes saldo suficiente.'
end

Config.Purchases.standalone.refund = function(source, totalAmount, context, receiptData)
    -- Usa receiptData para devolver el mismo cobro aprobado.
    return MyEconomy.refund(source, totalAmount, receiptData) == true
end

MyEconomy, sunucunuzun API'sini temsil eder; bunu gerçek ad ve çağrılarla değiştirin. Ücretsiz satın almaya özellikle izin vermek için allowFreePurchases = true ayarlayın.

Ödeme adaptörleri isAvailable(settings), charge(source, amount, context, settings) ve refund(source, amount, context, settings) işlevlerini sunar. Onaylanan bir ödeme makbuzunu context.paymentReceipt içinde korumalıdır; cxg-tattoos, olası iadeyi aynı ödeme sistemine yönlendirmek için bunu kullanır. Kendi ekonominiz için doğrudan yapılandırma yolu, standalone içindeki tryCharge ve refund callback'leridir.

Yönetici izinleri

Yönetici panelini açma ve kullanma izinleri sunucuda doğrulanır. İstemci arayüzünü gizlemek veya değiştirmek erişim yetkisi vermez.

Başlangıç yapılandırması algılanan framework'i ve yedek olarak ACE'i kullanır:

Kod
Config.Permissions = {
    framework = 'auto', -- auto | qbx | qbcore | esx | standalone
    mode = 'hybrid',    -- framework | ace | hybrid | custom
    acePrefix = 'cxg-tattoos.',
    resources = {
        qbx = 'qbx_core',
        qbcore = 'qb-core',
        esx = 'es_extended',
    },
    bindings = {
        admin = {
            ace = { 'cxg-tattoos.admin', 'group.admin', 'admin' },
            qbx = { 'god', 'admin', 'group.admin' },
            qbcore = { 'god', 'admin', 'group.admin' },
            esx = { 'superadmin', 'admin' },
        },
    },
}

framework modu framework rollerini denetler. ace, binding içindeki ACE girdilerini kullanır. hybrid, bu iki yöntemden herhangi biriyle erişime izin verir. standalone modunda framework yetkilendirmesi kullanılamaz; ACE'i veya özel bir denetimi yapılandırın.

Örneğin, group.admin ACE principal grubunun üyelerine izin vermek için:

Kod
add_ace group.admin cxg-tattoos.admin allow

Kararı kendi sisteminize devretmek için mode = 'custom' kullanın. Callback oyuncu kimliğini, izni, işlem bağlamını ve yapılandırılmış binding'i alır; yalnızca boolean true değeri erişim verir:

Kod
Config.Permissions.mode = 'custom'
Config.Permissions.custom = {
    hasPermission = function(source, permission, context, binding)
        return exports.my_permissions:hasPermission(source, permission) == true
    end,
}

my_permissions değerini sunucunuzda kurulu API'ye göre uyarlayın. Callback eksikse, hata verirse veya başka bir değer döndürürse erişim reddedilir.

Paneli açan komut da yapılandırılır. permission, Config.Permissions.bindings içindeki bir anahtarla eşleşmelidir:

Kod
Config.AdminCommand.enabled = true
Config.AdminCommand.name = 'tattooadmin'
Config.AdminCommand.permission = 'admin'

Bu değerlerle admin izni /tattooadmin komutunu ve yönetim işlemlerini korur. Komutu devre dışı bırakmak için enabled = false yapın; diğer yönetim yollarında izin denetimi sürer.

Düzenlenebilir entegrasyon dosyaları

Düzenlenebilir bridge'ler harici sistem bağlantılarını bir araya getirir. Özel bir izin veya ödeme için yukarıda açıklanan callback'leri yapılandırmak tercih edilir. Mevcut bir bridge'i uyarlayacaksanız sözleşmesini koruyun:

Dosya veya grupKullanımAdaptör sözleşmesi
bridge/permissions/server.luaFramework seçimi ve framework, ace, hybrid veya custom modunun uygulanmasıTattooPermissions.Has(source, permission, context), yalnızca izin verildiğinde true döndürür
bridge/permissions/registry.luaİzinlerin ortak kaydı ve yardımcı araçlarıTattooPermissionBridge.register(name, adapter)
bridge/permissions/qbx.lua, qbcore.lua, esx.lua, standalone.luaHer framework veya frameworksüz mod için denetimlerisAvailable(settings) ve hasPermission(source, binding, settings, permission); uyarlanırsa ek context kabul eder
bridge/payments/server.luaProvider seçimi, tahsilat ve iadeConfig.TryChargePlayer(source, totalAmount, context) ve Config.RefundPlayer(source, totalAmount, context)
bridge/payments/registry.luaÖdemelerin ortak kaydı ve yardımcı araçlarıTattooPaymentBridge.register(name, adapter) ve makbuz yardımcıları
bridge/payments/qbx.lua, qbcore.lua, esx.lua, standalone.luaFramework veya özel callback'lerle ödeme işlemleriisAvailable(settings), charge(...) ve refund(...)
bridge/appearance.luaSkin yükleme olayları ve kaydedilmiş dövmeleri istemeKarakterin dövme listesini ister ve görünüm yüklemesi tamamlandığında uygular

Bridge çağırdığında izin callback'i beşinci argüman olarak context değerini de alır. Kayıt, dahil edilen provider'ları (qbx, qbcore, esx, standalone) içerir; özel seçenekler için başka bir provider eklemek gerekmez.

Ödeme adaptöründe TattooPaymentBridge.setReceipt(context, provider, account, amount, identifier, data) ile makbuz kaydını koruyun. İade, getReceipt(context, provider, amount) ile aynı provider'ı ve tutarı doğrulamalı; iade onaylandıktan sonra makbuzu iade edilmiş olarak işaretlemelidir. Kullandığınız provider'ın dosyasını uyarlayın; adaptörleri değiştirmeden kendi entegrasyonunuzu kurmak için standalone callback'lerini kullanın.

Görünüm ve karakterin yüklenmesi

Kaynak, illenium-appearance, fivem-appearance, QBCore, ESX ve spawnmanager için yaygın olayları dinler; ardından kaydedilmiş dövmeleri alıp yeniden uygular. Qbox'ta multicharacter önizleme yapılandırması, karakter seçiminde kaydedilmiş dövmeleri göstermek için playerskins.skin değerini kullanır.

Görünüm sisteminiz farklı bir olay kullanıyorsa skin yüklemesi tamamlandıktan sonra uygulamayı isteyin:

Kod
TriggerServerEvent('cxg-tattoos:fetchMyTattoos')

Olay, geçerli karakterin dövmelerini istemciye gönderir. Listeyi oyuncunun seçtiği bir kaynaktan göndermeyin: sahiplik sunucuda çözülür ve doğrulanır.

Qbox multicharacter önizlemesi şu alanlarla ayarlanır:

Kod
Config.QbxMulticharacterPreview.enabled = true
Config.QbxMulticharacterPreview.resource = 'qbx_core'
Config.QbxMulticharacterPreview.playerskinsTable = 'playerskins'
Config.QbxMulticharacterPreview.playersTable = 'players'
Config.QbxMulticharacterPreview.syncExistingOnStart = true

enabled entegrasyonu açar; resource kurulu Qbox kaynağının adını belirtir. playerskinsTable ve playersTable, bu kurulumun kullandığı görünüm ve karakter tablolarını gösterir. syncExistingOnStart, cxg-tattoos başlatılırken önceden kaydedilmiş dövmelerin eşitlenmesini sağlar; böylece multicharacter seçiminde de görünürler. Sunucunuz tabloları yeniden adlandırdıysa bu iki alanı güncelleyin. qbx_core kaynağını değiştirmeniz gerekmez.

CXG · Dokümantasyonİyi bir temel. Sonsuz olasılıklar.
Entegrasyonlar · cxg-tattoos · CXG Docs