Skalp'te FiveM sunucu mağazası nasıl çalışır: ödeme, oyun içi teslim ve iadeler
Skalp'teki sunucu mağazası, FiveM sunucunuzdaki oyunculara VIP, rütbe, eşya ve araç satar. Oyuncu mağaza sayfanızda öder, sunucunuzdaki skalp kaynağı satın alımı yaklaşık on saniye içinde alır ve oyunda teslim eder, oyuncu çevrimdışıysa doğrudan karakterine verir. Satıcı Skalp olduğu için KDV, faturalar, iadeler ve ters ibrazlar bizim tarafımızda halledilir.
Oyuncular neler satın alabilir
Sunucunuzun bir komutla ya da betikle oyuncuya verebildiği her şey. Eşya ve araç yaygın framework'lerde kutudan çıktığı gibi çalışır. Meslek, rütbe, whitelist yeri ya da kuyrukta öncelik kendi sunucu komutlarınızla verilir. Aylık VIP, ödenen her ay yeniden teslim edilen bir abonelik olabilir ve oyuncular her ürünü bir arkadaşlarına hediye olarak alabilir.
Mağaza yourname.skalp.gg adresini ya da kendi alan adınızı alır. Skalp pazar yerinde Sunucu mağazaları sekmesinde listelenir; sunucu adresinizi eklerseniz çevrimiçi oyuncu sayısı da görünür. VIP rütbesi gibi tekil ürünler pazar yerinin ürün listesine girmez, çünkü yalnızca sunucunuzun oyuncuları için anlam taşırlar.
Satın alım oyuncuya nasıl ulaşır
- Satın almadan önce oyuncu Steam hesabını bağlar. Sunucunuz kimin ne aldığını böyle bilir. Kart, Apple Pay, Google Pay ya da yerel bir ödeme yöntemiyle öder.
- skalp kaynağı yaklaşık on saniyede bir Skalp'ten yeni satın alımları ister. Her birini onaylamadan önce
skalp_deliveries tablosuna kaydeder, bu yüzden arada bir çökme olursa satın alım yeniden çekilir ve hiçbir şey kaybolmaz.
- Oyunda olan oyuncu satın alımını hemen alır. Çevrimdışıysa yerleşik ödüller doğrudan veritabanınızdaki karakterine gider, böylece bir sonraki girişinde her şey hazır olur. Skalp, oyuncunun en son oynadığı karakteri seçer: ox_core ve vRP bunu kendileri Steam'e bağlar, ESX, QBCore ve Qbox'ta ise kaynak, oyuncu 3.2 veya daha yeni bir kaynak sürümüyle ilk kez bir karakter yüklediğinde onu öğrenir. O zamana kadar ve oyuncu yokken güvenle yazılamayan her şey için teslimat, oyuncunun girmesini bekler.
- Panelinizdeki sipariş, teslim edildiğini, beklediğini ya da başarısız olduğunu ve nedenini gösterir.
Sunucunuzu bağlama
Mağaza panelinizde Oyun sunucusu sayfasını açın ve Sunucuyu bağla düğmesine tıklayın. Kaynağı indirin, skalp klasörünü resources içine atın ve paneldeki üç satırı server.cfg dosyasına yapıştırın:
ensure skalp
set skalp_key "panodaki anahtar"
add_ace resource.skalp command allow
Yeniden başlatmanın ardından konsol Connected to Skalp yazar ve panel sunucuyu bağlı olarak gösterir. Anahtarı yalnızca bir kez görürsünüz. Kaybederseniz yenisini oluşturun, eskisi hemen çalışmayı bırakır.
Oyuncular Steam üzerinden eşleştirilir, bu yüzden sunucunun bir Steam Web API anahtarı olmalıdır (server.cfg içinde steam_webApiKey). Kaynak ESX ve türevlerinde, QBCore, Qbox, ox_core ve vRP'de çalışır; envanter olarak ox_inventory ya da framework'ün kendi envanteri kullanılabilir. Framework'ü olmayan bir sunucu da komutlar ve kendi betikleriyle teslimat yapabilir. oxmysql isteğe bağlıdır: varsa teslimatlar veritabanınızda, yoksa kaynağın kendi depolamasında tutulur.
Sunucunuza hiçbir şey bağlanmaz, bu yüzden açılacak port ve ayarlanacak URL yoktur. Sunucunuz Skalp'ten satın alımları ister ve iki yönde giden her şey anahtarınızla şifrelenir ve imzalanır. Anahtarın kendisi sunucudan hiç çıkmaz, bu yüzden sahte bir API ya da yakalanan bir bağlantı sunucuya bir şey verdiremez.
Bir ürün ne verir
Her üründe, ne vereceğini bir komut olarak yazarsınız. Kaynakla birlikte her framework'te aynı şekilde çalışan komutlar gelir, örneğin:
| Komut | Ne yapar |
skalp_item {playerId} bread 5 | ox_inventory, qb-inventory ya da framework üzerinden bir eşya ekler. |
skalp_vehicle {playerId} sultanrs | Aracı boş bir plakayla oyuncunun garajına kaydeder. |
Sunucunuzdaki bir kaynağın kaydettiği başka her komut da çalışır, örneğin setjob {playerId} police 0. Birden fazla adımı ; ile ayırın. Skalp {playerId}, {steamhex}, {steamid}, {quantity}, {orderId}, {productSlug} ve {buyerName} değerlerini doldurur. {citizenid}, {charId} veya {license} kullanan bir komut ({playerId} yerine) oyuncu çevrimdışıyken de çalışır. Ödemede alıcıya en fazla on soru da sorabilir, örneğin özel plaka metnini, ve yanıtı {field_plate} olarak kullanabilirsiniz. Alıcının yazdığı yanıtlar harflere, rakamlara ve _.:-[] karakterlerine indirilir, böylece kimse araya ikinci bir komut sokamaz.
Komutlar sunucu konsolu olarak çalışır ve yalnızca bir oyun kaynağının kaydettiği komutlar çalışır. quit, exec ya da add_ace gibi sunucunun kendi konsol komutları ve txAdmin'in komutları, üründe ne yazarsa yazsın asla çalışmaz; daha fazlasını Config.BlockedCommands içinde engelleyebilirsiniz. Sunucunuzda bulunmayan bir komut teslimatı adıyla birlikte başarısız kılar, böylece bir yazım hatası siparişte görünür.
Özel sistemler: kendi garaj, VIP ya da mağaza betiğiniz
Sunucunuz bir şeyleri kendi betiğiyle veriyorsa, örneğin konsol komutu olmayan özel bir garaj ya da VIP sistemiyle, kendi kaynağınızda bir handler kaydedin. Handler, ürünün komutunun yerini alır:
local function register()
exports.skalp:RegisterHandler('sultan-rs', function(ctx)
local ok, err = exports.my_garage:GiveCar(ctx.playerId, 'sultanrs')
if not ok then return false, err end
return true
end)
end
AddEventHandler('onResourceStart', function(name)
if name == 'skalp' then register() end
end)
if GetResourceState('skalp') == 'started' then register() end
Anahtar, ürünün slug'ı ya da kimliğidir. Satın alım teslim edildiğinde true, başarısız olduğunda false, 'neden' (neden siparişte görünür), beklemede tutup daha sonra yeniden denemek için nil, 'neden' döndürün. ctx oyuncu kimliğini, tanımlayıcısını, miktarı, sipariş numarasını, ürünü ve alıcının sorularınıza verdiği yanıtları taşır.
Kaynak ayrıca kendi betikleriniz için GiveItem ve GiveVehicle işlevlerini dışa aktarır ve examples klasöründe ESX, QBCore ve framework'süz sunucular için hazır dosyalar vardır. Handler'lar sizin kaynağınızda durur, bu yüzden skalp'i güncellemek onların üzerine yazmaz.
Handler'lar oyuncu oyundayken çalışır. Sunucunuz karakterleri, envanterleri veya garajları kendi tablolarında tutuyorsa, exports.skalp:RegisterOfflineHandler ile çevrimdışı handler'lar kaydedin; çevrimdışı teslimat sizin düzeninizle de çalışır.
Abonelikler, iadeler ve ters ibrazlar
- Abonelik, ödenen her dönem için yeniden teslim edilir. Gerçekten bittiğinde ürünün geri alma komutu çalışır.
RegisterSubscriptionHandler ile kaydedilmiş bir handler ctx.active değerini alır ve ayrıcalığı kendisi verip kaldırabilir.
- Tam iade, hâlâ bekleyen her şeyi iptal eder ve sunucunun zaten teslim ettiği şeyler için geri alma komutunu çalıştırır. Çevrimdışı olan oyuncu, bir sonraki girişinde onu kaybeder.
- Skalp ters ibrazlarla banka nezdinde mücadele eder. Kaybedilen bir ters ibraz iade gibi işler ve ayrıca alıcının sunucunuza girmesini yasaklar; sonradan kazanılırsa yasak kalkar. Satın alımı hediye olarak alan oyuncu, hediye edenin ters ibrazı yüzünden yasaklanmaz.
Sunucunuzun Skalp'e gönderdikleri
Bağlantı kimliği, kaynağın sürümü, framework'ün adı, komutların ve Steam girişinin açık olup olmadığı ve her teslimatın sonucu. Oyuncu listesi, hiçbir şey almamış oyuncuların tanımlayıcıları ve veritabanınızdan hiçbir şey göndermez. Skalp de sunucuya yalnızca bir teslimatın ihtiyaç duyduğunu gönderir; alıcının e-postasını, ödenen tutarı ve diğer sipariş ayrıntılarını göndermez.
Ödemeler, vergiler ve para çekme
Skalp oyuncuya resmî satıcı olarak satar. Alıcının ülkesinin KDV'si ödemede eklenir ve faturayı Skalp keser. Komisyon net satış fiyatının %10'udur; son 30 gündeki satışlarınız 20.000 $'a ulaştığında %7 olur. Ödeme işleme dahildir ve aylık ücret yoktur. Siparişler tamamlandıktan 7 gün sonra kesinleşir ve 20 USD'den itibaren panelden sizin ya da şirketinizin adına açılmış bir banka hesabına ödeme talep edebilirsiniz.
Ne satacağınıza siz karar verirsiniz
Mağazanızın hangi ürünleri satacağına siz karar verirsiniz. Her ürünün, oyunun ve sunucunuzun çalıştığı platformun kurallarına uyduğundan emin olun.
Sık sorulan sorular
Bir port açmam ya da webhook kurmam gerekir mi?
Hayır. Sunucunuz Skalp'ten yeni satın alımları ister, bu yüzden dışarıdan ona hiçbir şeyin bağlanması gerekmez.
Hangi framework'lerle çalışır?
ESX ve türevleri, QBCore, Qbox, ox_core ve vRP. Framework'ü olmayan bir sunucu komutlar ve kendi handler'larıyla teslimat yapabilir.
Oyuncu çevrimdışıysa ya da envanteri doluysa ne olur?
Yerleşik ödüller, Skalp hangi karakter olduğunu biliyorsa ve oyuncu sunucuda değilse ve son iki dakika içinde de ayrılmadıysa hemen karaktere gider. Oluşturulurken kendi verisini alan eşyalar, örneğin silahlar, oyuncunun girmesini bekler; envanter doluysa her şey bekler. Bekleyen teslimatlar skalp_deliveries tablosunda kalır, oyuncu girdiğinde çalışır ve oyuncu oynarken her 30 saniyede bir yeniden denenir. Oyuncu 30 gün içinde girmezse süreleri dolar. Teslimatların her zaman oyuncuyu beklemesi için Config.OfflineDelivery = false ayarlayın.
Bir satın alım iki kez teslim edilebilir mi?
Hayır. Siparişteki her ürünün kendi satırı vardır ve birden fazla adımlı bir teslimat hangi adımların zaten çalıştığını hatırlar.
Satmadan önce nasıl test ederim?
Panelde Test gönder düğmesine tıklayın; sunucu bir sonraki yoklamasında bunu konsoluna yazdırır. Ödül komutları sunucu konsolunda da çalışır, örneğin skalp_item 1 bread 5, ve skalp status bağlantıyı, framework'ü ve kaç teslimatın beklediğini ya da başarısız olduğunu gösterir.
Betiklerimi başka sunuculara da satabilir miyim?
Evet, farklı bir mağaza türü olan betik mağazasından. Skalp dosyaları korur ve bir lisansa bağlar. FiveM betiği satışı nasıl işler.
Skalp'in Rockstar Games ya da bir oyun platformuyla bağlantısı var mı?
Hayır. Skalp bağımsız bir dijital ürün mağazasıdır.