</>liveDevDocs
ScriptlerliveBase

Envanter ve Item Verme

Item tanımı vs envanter verme, AddItem akışı, güvenlik kuralları ve yeni script şablonu.

🌐 English · Inventory & Item Giving

Bu bölüm, liveBase'de item tanımı ile oyuncuya item verme arasındaki farkı ve tüm verme yollarını açıklar.

İki katman: tanım vs envanter

KatmanNe yapar?APIVeri kaynağı
Item tanımıMetadata kaydıliveBase.Functions.AddItem(name, item)liveShared.Items
Envantere vermeFiziksel item eklerexports['liveInventory']:AddItem(...)PlayerData.items

exports['liveBase']:AddItem('water', {...}) item tanımı ekler; oyuncuya su vermez. Oyuncuya vermek için liveInventory API'si kullanılır.

Item tanımları: liveBase/data/items.lua · Starter: liveBase/shared/utils.luaStarterItems

Merkez fonksiyon: AddItem

Dosya: liveInventory/server/functions.lua

Kontrol sırası: tanım var mı → envanter bul → ağırlık → slot → stack/unique → kaydet

AddItem(identifier, item, amount, slot, info, reason)
exports['liveInventory']:AddItem(source, 'water', 2, false, {}, 'myScript:reward')

Player method enjeksiyonu

Login sonrası (liveBase:Server:PlayerLoaded):

Player.Functions.AddItem(item, amount, slot, info, reason)
Player.Functions.RemoveItem(item, amount, slot, reason)
Player.Functions.GetItemByName(item)
Player.Functions.ClearInventory(filterItems)

Item verme yolları

YolAçıklama
/giveitem [id] [item] [amount]Admin — yetki: admin.giveitem
Envanter UI GiveItemOyuncudan oyuncuya (< 3m)
GiveStarterItemsKarakter oluşturma — phone, id_card, driver_license
Kendi scriptinPlayer.Functions.AddItem(...) (önerilen)
Mağaza / admin menuCallback ve stash akışları

Önerilen script kullanımı

local Player = liveBase.Functions.GetPlayer(source)
if not Player then return end

local ok = Player.Functions.AddItem('water', 2, nil, {}, 'myJob:questReward')
if ok then
    TriggerClientEvent('liveInventory:client:ItemBox', source, liveShared.Items['water'], 'add', 2)
end

Item tanımı ekleme

liveBase/data/items.lua
liveShared.Items['my_item'] = {
    name = 'my_item',
    label = 'Benim Item',
    weight = 100,
    type = 'item',
    unique = false,
    useable = true,
}

Runtime: exports['liveBase']:AddItem('my_item', { ... }) · Yenile: ReloadItems()

Güvenlik

KuralAçıklama
Server-onlyItem verme/alma yalnızca sunucuda
Client event yokliveBase:Server:AddItem engellenmiş
reason parametresiHer AddItem çağrısında log için reason ver

Sık hatalar

HataÇözüm
liveBase:AddItem ile oyuncuya vermekliveInventory:AddItem veya Player.Functions.AddItem
Login öncesi AddItemPlayerLoaded sonrası bekle
Büyük harf item adıKüçük harf kullan (water)

Detaylı envanter API → liveInventory

On this page