Kullanıcı Aletleri

Site Aletleri


tr:m2:db:item_proto

Item Proto

Oyundaki tüm itemlerin konfigürasyonlarının ayarlandığı bölümdür. Item'ler için, veritabanı içerisinde küçük bir iç veritabanı gibi düşünebiliriz.

İlk sızdırılan sunucu dosyaları üzerinden geliştirilen 34K files'larda protolar tamamen veritabanı üzerinden çalışmaktadır. Güncel 40K files'larda sunucu tarafında db çekirdeğinde aşağıdaki isimlerdeki dosyalar üzerinden çalışmaktadır.

  • item_proto.txt
  • item_names.txt

item_proto.txt dosyası aslında bir tsv dosyasıdır.

Her sütun bir parametreyi temsil eder ve sütunlar [TAB] ile ayrılmıştır.

Eskiden protolar veritabanı üzerinden kontrol edilmekteydi. Güncel sistemlerde server tarafında .txt uzantılı metin belgeleri üzerinden düzenleme gerçekleştirilmektedir. Server başlarken, bu metin belgeleri kullanılarak, başlangıç aşamasında veritabanı güncellenir. Eğer TXT üzerinden çalışan bir SF kullanıyorsanız, navicat tarzı veritabanı yönetim programları ile protolar üzerinde düzenleme gerçekleştirirseniz, yaptığını düzenlemeler her start esnasında silinecektir.

No TXT Nedir?

Kaynak kodlarında yapılan ve normalde TXT üzerinden çalışan bir sistem için, proto dosyalarının veritabanı üzerinden çalışması sağlayan modifikasyondur.

Kullandığınız SF'de No TXT modifikasyonu uygulanmış olabilir. Aktifleştirmek için, Db çekirdeğinin CONFIG dosyasında bulunan NO_TXT parametresini 1 yapmanız yeterlidir.

Proto düzenlemelerinde TXT kullanımını öneriyoruz.


Sütunlar

Vnum

TXT Sütun Adı: ITEM번호
SQL Sütun Adı: vnum

Item'lerin kimlik numarasını belirten sütundur. Her item'in vnum değeri farklı olmak zorundadır.

Bazı itemler sunucu tarafından bu değer aracılığıyla yönetilir. Vnum'larını değiştirmek hatalara neden olabilir.

Silahların ve zırhların vnum değerleri 65536 'yı geçmemelidir.


Name

TXT Sütun Adı: ITEM_NAME(K)
SQL Sütun Adı: name

Burası itemin orjinal ismini temsil eder. Oyun kore yapımı olduğundan item isimleri korecedir.

Sunucu tarafında bazı işlemlerde bu sütundaki değer kullanıldığından, her item için farklı olması zorunludur.


Locale Name

TXT Sütun Adı: TXT proto dosyasında bu sütun yoktur. 1)
SQL Sütun Adı: locale_name

Burası itemin sunucu dilinize göre çevirisini temsil eder.

Buradaki değer her item için farklı olmak zorunda değildir.

Sunucu tarafından gönderilen paketlerde itemlerin ismi buradan alınır.


Type ve SubType

TXT Sütun Adı: ITEM_TYPE - SUB_TYPE
SQL Sütun Adı: type - subtype

Bu iki sütunu, birlikte anlam kazandıklarından beraber inceleyeceğiz.

Type, itemin hangi kategoride olduğunu belirtir. SubType ise, bu kategorinin alt kategorisini belirtir.

Birbirleri ile uyuşmayan type ve subtype değerleri birlikte kullanılırsa, hata alabilirsiniz.

Aşağıdaki tablodan, iki sütunun alabilecekleri değerleri inceleyebilirsiniz.

Type SQL Type TXT SubType SQL SubType TXT Açıklama
1 ITEM_WEAPON İtem bir silahtır. subtype değer ile ne tip bir silah olduğu ayarlanır.
0 WEAPON_SWORD Kılıçlar
1 WEAPON_D AGGER Hançerler
2 WEAPON_BOW Yaylar
3 WEAPON_TWO_HANDED Çift-Eller
4 WEAPON_BELL Çanlar
5 WEAPON_FAN Yelpazeler
6 WEAPON_ARROW Oklar
7 WEAPON_MOUNT_SPEAR Kullanımı yok
8 WEAPON_CLAW Pençeler SF'nizde kurt karakteri yoksa bu değer bulunmaz.
9 WEAPON_WEDDING Güncel SF'lerde buket gibi evlilik silahları
2 ITEM_ARMOR İtem bir zırh veya takıdır.
0 ARMOR_BODY Zırhlar
1 ARMOR_HEAD Kasklar
2 ARMOR_UNIQUE Kalkanlar
3 ARMOR_WRIST Bilezikler
4 ARMOR_FOOTS Ayakkabılar
5 ARMOR_NECK Kolyeler
6 ARMOR_EAR Küpeler
3 ITEM_USE Tek kullanımlık itemler.
0 USE_POTION Potlar
1 USE_TALISMAN Işınlanma parşomenleri
2 USE_TUNING Yükseltme ile alakalı itemler.
3 USE_MOVE Kullanımı yok.
4 USE_TREASURE_BOX Kullanımı yok.
5 USE_MONEYBAG Kullanımı yok.
6 USE_BAIT Balıkçılık yemleri.
7 USE_ABILITY_UP Kullanıldığında oyuncunun özelliğini yükselten itemler.
8 USE_AFFECT Kullanıldığında oyuncuya bonus veren itemler.
9 USE_CREATE_STONE Rastgele bir taş veren item. (28000 ile 28013 arasında)
10 USE_SPECIAL Oyun tarafından yönetilen özel itemler.
11 USE_POTION_NODELAY Anında iyileşme sağlayan pot.
12 USE_CLEAR Oyuncu üzerindeki tüm negatif etkileri kaldıran itemler.
13 USE_INVISIBILITY Görünmezlik sağlayan itemler (GM'lerin görünmez olması gibi.).
14 USE_DETACHMENT Ruh taşı kağıdı.
15 USE_BUCKET Kullanımı yok.
16 USE_POTION_CONTINUE Öldükten sonra iyileşme sağlayan itemler.
17 USE_CLEAN_SOCKET İtemlerden taşları söken itemler.
18 USE_CHANGE_ATTRIBUTE İlk 5 efsunu değiştiren itemler.
19 USE_ADD_ATTRIBUTE İtemlere 4 efsun ekleyen itemler.
20 USE_ADD_ACCESSORY_SOCKET İtemlere cevher yuvası açan itemler.
21 USE_PUT_INTO_ACCESSORY_SOCKET Cevher yuvalarına eklenen itemler.
22 USE_ADD_ATTRIBUTE2 İtemlere 5. efsunu ekleyen itemler.
23 USE_RECIPE Reçete itemler.
24 USE_CHANGE_ATTRIBUTE2 6-7. efsunları değiştiren itemler.
25 USE_BIND Ruh bağlama itemleri.
26 USE_UNBIND Ruh bağını kaldıran itemler.
27 USE_TIME_CHARGE_PER Simya şarj itemleri (% cinsinden süre).
28 USE_TIME_CHARGE_FIX Simya şarj itemleri (Sabit süreli).
29 USE_PUT_INTO_BELT_SOCKET Kemer cevher itemleri.
5 ITEM_MATERIAL Tek kullanımlık itemler.
0 MATERIAL_LEATHER Genellikle görevlerde harcanan itemler
5 MATERIAL_DS_REFINE_NORMAL Simya geliştirme itemleri.
6 MATERIAL_DS_REFINE_BLESSED Simya geliştirme itemleri
7 MATERIAL_DS_REFINE_HOLLY Simya geliştirme itemleri
6 ITEM_SPECIAL 0 SPECIAL_MAP Özel kullanımlık itemler.
9 ITEM_ELK 0 0 Yang
10 ITEM_METIN Taşlar.
0 METIN_NORMAL Taşlar
1 METIN_GOLD Özel taşlar
11 ITEM_CONTAINER 0 0 Simya itemi.
12 ITEM_FISH Balıklar.
0 FISH_ALIVE Canlı balıklar
1 FISH_DEAD Ölü balıklar
13 ITEM_ROD 0 Olta.
14 ITEM_RESOURCE Tek kullanımlık itemler.
0 RESOURCE_FISHBONE Yer tutan item
1 RESOURCE_WATERSTONEPIECE Yer tutan item
2 RESOURCE_WATERSTONE Yer tutan item
3 RESOURCE_BLOOD_PEARL Yer tutan item
4 RESOURCE_BLUE_PEARL Yer tutan item
5 RESOURCE_WHITE_PEARL Yer tutan item
15 ITEM_CAMPFIRE 0 0 Kamp ateşi.
16 ITEM_UNIQUE Genellikle EP ile alınan özel itemler.
0 UNIQUE_NONE Yer tutan item
10 USE_SPECIAL İpek Bohça
2 UNIQUE_SPECIAL_RIDE Binek İtemleri
17 ITEM_SKILLBOOK 0 0 Beceri kitapları.
18 ITEM_QUEST 0 0 Quest itemleri. Sağ tıklandığında quest tetikleyen itemler.
19 ITEM_POLYMORPH 0 0 Dönüşüm Küreleri
20 ITEM_TREASURE_BOX 0 0 Anahtarlı sandıklar.
21 ITEM_TREASURE_KEY 0 0 Anahtarlar.
22 ITEM_SKILLFORGET 0 0 Unutkanlık Kitabı
23 ITEM_GIFTBOX 0 0 Hediye sandıkları.
24 ITEM_PICK 0 0 Kazmalar
27 ITEM_BLEND 0 0 Şebnemler.
28 ITEM_COSTUME Kostümler.
0 COSTUME_BODY Beden kostümleri
1 COSTUME_HAIR Saç stili kostümleri
2 COSTUME_WEAPON Silah kostümleri
3 COSTUME_ACCE Kuşak kostümleri
4 COSTUME_MOUNT Binek kostümleri
29 ITEM_DS Simya İtemleri.
0 DS_SLOT1 Giyilebilir Simya İtemi
1 DS_SLOT2 Giyilebilir Simya İtemi
2 DS_SLOT3 Giyilebilir Simya İtemi
3 DS_SLOT4 Giyilebilir Simya İtemi
4 DS_SLOT5 Giyilebilir Simya İtemi
5 DS_SLOT6 Giyilebilir Simya İtemi
34 ITEM_BELT 0 0 Giyilebilir Kemerler.

Weight

TXT Sütun Adı: TXT proto dosyasında bu sütun yoktur. 2)
SQL Sütun Adı: weight

Kullanımı olmayan sütundur. Tahmini olarak oyun geliştirilirken itemlere ağırlık eklenmek istendi (Karakterin taşıyabileceği maks kapasite gibi) ancak bu tasarımdan vazgeçildi.


Size

TXT Sütun Adı: SIZE
SQL Sütun Adı: size

İtemin envanterde kaplayacağı kare sayısını temsil eder.

İtemin ikon dosyasına göre ayarlanmalıdır. Hatalı ayarlandığında itemler iç içe gözükür.


Anti Flag

TXT Sütun Adı: ANTI_FLAG
SQL Sütun Adı: antiflag

İtemin kullanımlarına kısıtlama getirmemize olanak sağlayan bitflag değer alan sütundur.

Aşağıdaki tablodan, alabileceği değerleri inceleyebilirsiniz.

TXT üzerinden çalışan sistemlerde, iki farklı antiflag değerini birlikte kullanmak için. | ile ayırırız. Ancak TXT üzerinden çalışmayan sistemlerde veritabanı üzerinden düzenleme yapmak için; tablodaki ilgili antiflag değerlerini toplayıp yazmamız gerekmektedir.

TXT SQL Açıklama
1 ANTI_FEMALE Kadın karakterler kullanamaz.
2 ANTI_MALE Erkek karakterler kullanamaz.
4 ANTI_MUSA Savaşçı karakterler kullanamaz.
8 ANTI_ASSASSIN Ninja karakterler kullanamaz.
16 ANTI_SURA Sura karakterler kullanamaz.
32 ANTI_MUDANG Şaman karakterler kullanamaz.
64 ANTI_GET Item yerden alınamaz.
128 ANTI_DROP İtem yere atılamaz.
256 ANTI_SELL İtem markete satılamaz.
512 ANTI_EMPIRE_A Shinsoo(Kırmızı) İmparatorluğu kullanamaz.
1024 ANTI_EMPIRE_B Chunjo(Sarı) İmparatorluğu kullanamaz.
2048 ANTI_EMPIRE_C Jinno(Mavi) İmparatorluğu kullanamaz.
4096 ANTI_SAVE İtem envanterde saklanamaz.
8192 ANTI_GIVE Oyuncular arası ticarete koyulamaz.
16384 ANTI_PKDROP Zalimken öldürülen oyunculardan düşmez.
32768 ANTI_STACK Üst üste koyulamaz.
65536 ANTI_MYSHOP Özel pazara koyulamaz.
131072 ANTI_SAFEBOX Özel depoya konulamaz.
262144 ANTI_BIND Item ruha bağlanamaz. (Eski fileslerde bulunmaz.)
524288 ANTI_WOLFMAN Lycan karakterler kullanamaz. (Eski fileslerde bulunmaz.)

Flag

İtemle yapılabilecek işlemler hakkında ek bilgiler tanımlayan bitflag değer alan sütundur.

Antiflag sütunu ile aynı şekilde çalışır. TXT üzerinden çalışan sistemlerde, iki farklı flag değerini birlikte kullanmak için. | ile ayırırız. Ancak TXT üzerinden çalışmayan sistemlerde veritabanı üzerinden düzenleme yapmak için; tablodaki ilgili flag değerlerini toplayıp yazmamız gerekmektedir.

SQL TXT Açıklama
1 ITEM_TUNABLE İtemden taş çıkartılabilir.
2 ITEM_SAVE İtem envanterde saklanabilir.
4 ITEM_STACKABLE İtem üst üste konulabilir.
8 COUNT_PER_1GOLD İtemin marketten 1 yang'dan daha düşük fiyata satılabilir/satın alınabilir (fiyat = 1/fiyat).
16 ITEM_SLOW_QUERY İtem veritabanında güncellenmez. (İksirler ve yem gibi)
32 ITEM_UNIQUE İtem envanterden çıkarılamaz.
64 ITEM_MAKECOUNT İtem sadece bir kez kullanılabilir.
128 ITEM_IRREMOVABLE The object is created by pack (the object must be stackable, the number of objects in the pack is configured in the value1 of the object).
256 CONFIRM_WHEN_USE İtem bir kere kuşanıldığında, geri çıkarılamaz.
512 QUEST_USE special_item_group.txt dosyasındaki vnum değerlerine bağlantı sağlar.
1024 QUEST_USE_MULTIPLE İtem bir görevle yönetilebilir. (type sütunu 3/2 olan itemler için uygundur. Binek mühürleri gibi)
2048 QUEST_GIVE İtem quest ile yönetilebilir.
4096 ITEM_QUEST Kullanımı yok (type sütunundaki eşi ile karıştırılmamalıdır).
8192 LOG İtem kullanıldığında log kaydı tutulur.
16384 STACKABLE İtemin envanterde kaç adet olduğunu tutar.
32768 SLOW_QUERY İtem üst üste konulabilir.
65536 REFINEABLE İtem veritabanında güncellenmez. (İksirler ve yem gibi)
131072 IRREMOVABLE İtem yükseltilebilir. (Artı basma, dönüşüm)
262144 ITEM_APPLICABLE Kullanımı yok.

Wear Flag

İtemin giyilebileceği envanterde hangi slota donanacağını belirten bitflag değer alan sütundur.

TXT SQL Açıklama
1 WEAR_BODY Zırh Slotu
2 WEAR_HEAD Kask Slotu
4 WEAR_FOOTS Ayakkabı Slotu
8 WEAR_WRIST Bilezik Slotu
16 WEAR_WEAPON Silah Slotu
32 WEAR_NECK Kolye Slotu
64 WEAR_EAR Küpe Slotu
128 WEAR_SHIELD Özel Slot (Liderin kitabı gibi itemlerin iki slot)
256 WEAR_UNIQUE Kalkan Slotu
512 WEAR_ARROW Ok Slotu
1024 WEAR_HAIR Saç Slotu
2048 WEAR_ABILITY Beceri Slotu
4096 WEAR_COSTUME_BODY Kostüm Beden Slotu (Sisteminizde Kostüm Envanteri ekli olmalıdır.)
8192 WEAR_COSTUME_HAIR Kostüm Saç Slotu (Sisteminizde Kostüm Envanteri ekli olmalıdır.)
16384 WEAR_COSTUME_WEAPON Kostüm Silah Slotu (Sisteminizde Kostüm Envanteri ekli olmalıdır.)
32768 WEAR_COSTUME_ACCE Kostüm Kuşak Slotu (Sisteminizde Kostüm Envanteri ekli olmalıdır.)
65536 WEAR_COSTUME_MOUNT Kostüm Binek Slotu (Sisteminizde Kostüm Envanteri ekli olmalıdır.)

Immune Flag

İtem protoda kullanımı yoktur. Mob proto'da kullanılır.

Bu proto'da bulunmasının sebebi, protoları okuyan programların tek bir yapı kullanmasıdır. (Item proto ve mob proto'yu tek program okumaktadır.)


Gold

TXT Sütun Adı: GOLD
SQL Sütun Adı: gold

İtemlerin marketten alış fiyatıdır.

Farklı imparatorluktan oyuncular, bu fiyatın 3 katı ile satın alırlar.


Shop Buy Price

TXT Sütun Adı: SHOP_BUY_PRICE
SQL Sütun Adı: buy_price

İtemlerin markete satış fiyatının ayarlandığı sütundur.

Satış fiyatı otomatik olarak 3'e bölünür ve %3 vergi uygulanır.

Bu sütunda yazılan değerin yaklaşık %32.3'ünü oyuncu kazanır.


Refine Vnum

TXT Sütun Adı: REFINE
SQL Sütun Adı: refine_set

İlgili iteme yükseltme yapılırsa hangi iteme dönüşeceğinin ayarlandığı sütundur.

Eğer itemin yükseltilmesini istemiyorsanız buraya 0 yazmalısınız.

Bu sütuna 0 dışında bir değer girilirse, bir sonraki refine set sütunu boş geçilemez.


Refine Set

Önceki refine vnum sütununda item yükseltilebilir olarak ayarlandı ise bu sütun ile hangi şartlar ile yükseltilebileceği ayarlanır.

Demirci ve yükseltme parşomenleri, refine set değeri 500'ün altında olan itemleri işler. Daha yüksek değerler Seon-Pyeong NPC'si tarafından işlenir.

Buradaki değer refine_proto tablosundaki herhangi bir vnum değeri ile eşleşmek zorundadır.

Limit Sütunları

TXT Sütun Adı: LIMIT_TYPE0 - LIMIT_VALUE0 - LIMIT_TYPE1 - LIMIT_VALUE1
SQL Sütun Adı: limittype0 - limitvalue0 - limittype1 - limitvalue1

Bu dört sütun, itemlerin kullanım limitlerinin ayarlandığı sütunlardır.

Limit type sütununa eklemek istediğimiz limiti, limit value sütununa ise bu limitin değerini yazmalıyız.

Bitflag hesaplaması kullanılmaz. Antiflag sütunundaki mantık burada yoktur. Kaynakta düzenleme yapılmadan sadece 2 limit getirilebilir.

Limit Type SQL Limit Type TXT Açıklama
0 LIMIT_NONE Herhangi bir limit yok.
1 LEVEL İlgili value sütunundaki değerden daha düşük seviyeye sahip karakterler itemi kullanamaz.
2 STR İlgili value sütunundaki değerden daha düşük güç statüsüne sahip karakterler itemi kullanamaz. (Eşya bonusu dahil.)
3 DEX İlgili value sütunundaki değerden daha düşük çeviklik statüsüne sahip karakterler itemi kullanamaz. (Eşya bonusu dahil.)
4 INT İlgili value sütunundaki değerden daha düşük zeka statüsüne sahip karakterler itemi kullanamaz. (Eşya bonusu dahil.)
5 CON İlgili value sütunundaki değerden daha düşük canlılık sahip karakterler itemi kullanamaz. (Eşya bonusu dahil.)
6 PC_BANG Item'in kullanımının PCBangIP'li karakterlerle sınırlandırılmasına izin verir (Sadece kore sunucusunda kullanılmıştır.)
7 REAL_TIME İlgili value sütunundaki değer (saniye cinsinden) kadar zaman sınırı. (İtem oluştuğunda zaman süre işlemeye başlar. )
8 REAL_TIME_FIRST_USE İlgili value sütunundaki değer (saniye cinsinden) kadar zaman sınırı. (Item bir kez kullanıldığında süre işlemeye başlar.)
9 TIMER_BASED_ON_WEAR İlgili value sütunundaki değer (saniye cinsinden) kadar zaman sınırı. (Item kullanılırken süre işler, kullanılmazken süre azalmaz.)

Özel Durum:

Limit_type sütununa 7 / REAL_TIME veya 8 / REAL_TIME_FIRST_USE değerlerinden biri yazıldıysa ve ilgili value sütununa 0 yazılırsa, itemin 1 hafta. süresi olur.

Limit_type sütununa 9 / TIMER_BASED_ON_WEAR'' değeri yazılırsa ve ilgili value sütununa 0'' yazılırsa, itemin 10 saat. süresi olur.

Bu sayfada bulunan bilgiler, mümkün oldukça resmi oyunda olan bilgilere göre hazırlanmıştır. Fakat bazı bilgilerin eksik veya yanlış olması mümkündür.

RTFI Wiki'den alınmıştır. ===== EDİTÖR NOTLARI ===== BU WRAP'i SİLME Bu metin işlenen sayfada görünmeyecektir. Kendiniz ve diğer editörler için notlar bırakmak için kullanabilirsiniz.

1)
DB çekirdeği başlarken, veritabanı güncellemesinde bu sütun item_names.txt dosyasından çekilir.
tr/m2/db/item_proto.txt · Son değiştirilme: 2024/08/16 20:12 Değiştiren: 127.0.0.1