_SMC_ADD_ITEM Nedir?
Bu prosedür VSRO server'da:
- Oyuncuya item ekleme
- Chest / inventory / guild chest / avatar inventory'e item basma
- Item oluşturma (RefItemID → _Items insert)
- Slot bulma ve yerleştirme
- Stack / opt / magparam ayarlama
işlerini yapan ana item create sistemidir.
Storage Türleri
@TargetStorage
0 = Inventory (Char)
1 = Storage Chest (Account)
2 = Guild Chest
3 = Avatar Inventory
Ne yapıyor? (Özet akış)
Owner bulur
- CharName → CharID
- AccountID → JID
- Guild name → GuildID
Boş slot bulur
- Inventory / chest / guild chest içinde boş yer arar
- yoksa:
- inventory full
- chest full
Item doğrulama
- _RefObjCommon kontrol eder
- item mı değil mi bakar
- equip / pet / stack kontrolü yapar
Item oluşturur
_STRG_ALLOC_ITEM_NoTX
→ yeni ID üretir
_Items tablosuna yazar
- RefItemID
- OptLevel
- Data (durability / count)
- Magic params
Slot'a yerleştirir
- _Inventory
- _Chest
- _GuildChest
- _InventoryForAvatar
VSRO açısından önemi
Bu procedure bozulursa:
NPC item veremez
GM item basamaz
Drop sistemi çalışmaz
Web / tool item insert çalışmaz
Event reward sistemleri bozulur
En kritik noktalar
✔ Equipment kontrolü
if (@tid1 = 3 and @tid2 = 1)
✔ Stack fix
Data <= 0) set @Data = @MaxCount
✔ Slot check
select top 1 slot from _inventory where itemid = 0
VSRO bug riskleri
- Slot logic hatası → item kaybolur
- MaxStack yanlış → item duplicate bug
- RefObjCommon bozuk → item basılmaz
- STRG_ALLOC_ITEM hata → server crash
Kısaca
Bu procedure = VSRO item üretim motoru
NPC, GM, event, tool → hepsi bunu kullanır
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
