İçeriğe geç

Metin2 item_proto Rehberi: Sütunlar, Türler ve Bayraklar

Hazırlayan: Metin2VIP Editörleri Yayın: 13 dk okuma

Kısaca: item_proto, sunucudaki her eşyanın tek satırlık tanımıdır: tür, alt tür, boyut, fiyat, kısıt bayrakları, seviye şartı, sabit efsunlar ve türe göre anlamı değişen altı Value değeri burada durur. Bu yapıdaki item_proto.txt 35 sütundur ve db çekirdeği tarafından okunur. Tanınmayan bir tür ya da efsun adı db'nin açılmasını durdurur, tanınmayan bayrak ise hiçbir uyarı vermeden atlanır. İstemcinin paketlenmiş ayrı bir kopyası vardır ve aynı dosyadan üretilmelidir.
İçindekiler
  1. item_proto nerede durur, kim okur?
  2. Sütunlar tek tek
  3. Hangi hata db'yi durdurur, hangisi sessiz kalır?
  4. Type ve SubType listeleri
  5. AntiFlags: kim kullanamaz, ne yapılamaz?
  6. Flags: hangi bayrak gerçekten ne yapar?
  7. WearFlags ve ImmuneFlags
  8. Fiyat, yükseltme ve yaratılma sütunları
  9. Limit ve efsun sütunları
  10. Value sütunları türe göre ne anlama gelir?
  11. Örnek satır: Kılıç+0
  12. Sık yapılan hatalar

item_proto, sunucudaki her eşyanın tek satırlık tanımıdır. Türü, alt türü, envanterde kapladığı yer, fiyatları, kim tarafından kullanılabileceği, seviye şartı, sabit efsunları ve türe göre anlamı değişen altı Value değeri bu satırda durur. Bu yapıdaki item_proto.txt 35 sütundur; db çekirdeği okur, istemcinin ise paketlenmiş ayrı bir kopyası vardır.

Aşağıdaki davranışlar oyun çekirdeğinin kendi kodundan çıkarıldı; resmî yapıdan türeyen sunucuların çok büyük çoğunluğunda aynı işler. Sütunlara yazılan sayılar ise tamamen sunucu ayarıdır.

item_proto nerede durur, kim okur?

Sunucuda iki dosya vardır: share/conf/item_proto.txt ve share/conf/item_names.txt. Bunları oyun çekirdekleri değil db çekirdeği kendi çalışma klasöründen okur; çoğu kurulumda db klasöründeki dosyalar share/conf altındakilere bağlıdır. Oyun çekirdekleri tabloyu açılışta db'den hazır alır.

item_names.txt iki sütunludur: Vnum ve LocaleName, ilk satır başlıktır. Bir eşyanın burada Türkçe adı varsa oyunda o görünür, yoksa item_proto'daki Korece ad kullanılır. Name sütunundaki Korece ad ise silinmemelidir; drop dosyaları eşyayı önce bu adla arar.

Dosya sekmeyle ayrılmıştır ve ilk satırı atlanır. Satırın başındaki ve sonundaki boşluklar kırpılır, # ile başlayan satır yorum sayılır, tırnak içindeki metin tek hücre olarak okunur ve bir satır en çok 2048 karakter olabilir.

İstemci kendi kopyasını locale/tr/item_proto dosyasından okur. Bu dosya sıkıştırılmış ve şifrelenmiştir; txt'den nasıl üretildiği, protoların veritabanından okutulması ve MySQL'e yansıtılması proto araçları yazısında anlatılıyor.

Sütunlar tek tek

# Sütun Anlamı Not
0 Vnum Eşya numarası başlangıç~bitiş aralığı yazılabilir
1 Name Korece orijinal ad Drop ve kutu dosyaları bu adı arar
2 Type Tür Tanınmazsa db açılmaz
3 SubType Alt tür Listesi olmayan türlerde her zaman 0
4 Size Envanterde kapladığı dikey kare 1 ile 3 arasına kırpılır
5 AntiFlags Kullanım ve el değiştirme kısıtları Birden çok ad dikey çizgiyle ayrılır
6 Flags Eşya özellikleri Birden çok ad dikey çizgiyle ayrılır
7 WearFlags Giyilme yeri Birden çok ad dikey çizgiyle ayrılır
8 ImmuneFlags Giyene bağışıklık Bitleri kayık, aşağıya bak
9 Gold NPC marketinden alış fiyatı Adetle çarpılır
10 ShopBuyPrice NPC'ye satış değeri Beşe bölünür, %3 vergi
11 RefinedVnum Artı basınca dönüştüğü eşya 0 ise yükseltilemez
12 RefineSet refine_proto satırı Yang, şans ve malzeme
13 AlterToMagicItemPercent Yaratılırken efsunlu gelme şansı Yüzde
14-17 LimitType0, LimitValue0, LimitType1, LimitValue1 İki şart ya da süre Seviye, statü, süre
18-25 ApplyType0..3, ApplyValue0..3 Dört sabit efsun Giyilince eklenir
26-31 Value0..Value5 Türe göre değişen değerler Aşağıda tablo
32 Specular Modelin parlaklığı Sunucu okumaz, yalnız istemci
33 GainSocketPercent Açık taş yuvası sayısı Yüzde değil, en çok 3
34 AddonType Rastgele beceri hasarı ve ortalama zarar 0 değilse uygulanır

Başlık satırı şöyledir:

Vnum	Name	Type	SubType	Size	AntiFlags	Flags	WearFlags	ImmuneFlags	Gold	ShopBuyPrice	RefinedVnum	RefineSet	AlterToMagicItemPercent	LimitType0	LimitValue0	LimitType1	LimitValue1	ApplyType0	ApplyValue0	ApplyType1	ApplyValue1	ApplyType2	ApplyValue2	ApplyType3	ApplyValue3	Value0	Value1	Value2	Value3	Value4	Value5	Specular	GainSocketPercent	AddonType

Orijinal Metin2 yapısında eşyanın üç sabit efsunu vardı ve dosya 33 sütundu. Dördüncü efsun yuvası sonradan eklenmiş bir genişlemedir; bu yüzden eski bir araçla açılmış 33 sütunlu bir dosyayı bu yapının db'si okuyamaz.

Vnum sütununa 110000~110099 gibi bir aralık yazılabilir; bu dosya setinde 180 satır böyledir ve hepsi simya taşlarıdır. Oyun, tablosunda tam karşılığı olmayan bir numarayı aralıklarda arar, ancak aralığın son değerini kapsama almaz: 110000~110099 satırı 110000 ile 110098 arasını karşılar.

Hangi hata db'yi durdurur, hangisi sessiz kalır?

Okuyucu tutarlı davranmaz ve bu durum hataları gizler. Type sütununa, listesi olan türlerde SubType'a, LimitType ya da ApplyType sütunlarına tanınmayan bir ad yazılırsa db günlüğe ItemProto Reading Failed : Invalid value satırını sütun numarası ve değerle birlikte yazar ve hemen kapanır. Bu hata en azından nerede olduğunu söyler.

Bayrak sütunlarında ise tanınmayan ad hiçbir iz bırakmadan atlanır. NONE yazmak da aslında tanınmayan bir ad yazmaktır ve 0 sonucunu verir. Bu dosya setinde ANTI_ACCE, ANTI_MAIL, ANTI_QUICKSLOT gibi yeni sürüm bayrakları ve 1.206 satırda WEAR_PENDANT yazıyor; db bunların hiçbirini tanımadığı için sessizce atlar. Bu yüzden tılsım eşyalarının giyilme bayrağı 0 kalır ve bu sunucuda giyilemezler.

Boş hücre de tehlikelidir. Ortadaki boş bir sayı hücresi 0 olarak değil belirsiz bir değer olarak okunur. Satırın sonundaki boş hücreler kırpma sırasında silinir, satır kısalır ve db açılırken kapanır. Her hücreye bir değer yazmak bu iki sorunu birden önler.

Type ve SubType listeleri

Tür adları dosyaya tam yazılmalıdır; aşağıdaki numaralar oyunun ve istemcinin kullandığı değerlerdir.

No Tür Kullanımı
0 ITEM_NONE Türsüz eşya
1 ITEM_WEAPON Silah ve ok
2 ITEM_ARMOR Zırh, kask, kalkan, takılar
3 ITEM_USE Kullanılan eşyalar (iksir, kağıt, efsun nesnesi)
4 ITEM_AUTOUSE Otomatik kullanılan eşya
5 ITEM_MATERIAL Yükseltme malzemesi
6 ITEM_SPECIAL Harita, anahtar, belge
7 ITEM_TOOL Araç
8 ITEM_LOTTERY Piyango
9 ITEM_ELK Yang
10 ITEM_METIN Zihin taşı
11 ITEM_CONTAINER Kap
12 ITEM_FISH Balık
13 ITEM_ROD Olta
14 ITEM_RESOURCE Kaynak (kılçık, inci, cevher)
15 ITEM_CAMPFIRE Kamp ateşi
16 ITEM_UNIQUE Özel eşya yuvasına takılanlar
17 ITEM_SKILLBOOK Beceri kitabı
18 ITEM_QUEST Görev eşyası
19 ITEM_POLYMORPH Dönüşüm küresi
20 ITEM_TREASURE_BOX Anahtarla açılan sandık
21 ITEM_TREASURE_KEY Sandık anahtarı
22 ITEM_SKILLFORGET Beceri unutturma
23 ITEM_GIFTBOX Hediye kutusu
24 ITEM_PICK Kazma
25 ITEM_HAIR Saç
26 ITEM_TOTEM Totem
27 ITEM_BLEND Karışım iksiri
28 ITEM_COSTUME Kostüm
29 ITEM_DS Simya taşı
30 ITEM_SPECIAL_DS Özel simya taşı
31 ITEM_EXTRACT Simya özütü
32 ITEM_SECONDARY_COIN İkinci para birimi
33 ITEM_RING Yüzük
34 ITEM_BELT Kemer
35-38 ITEM_PET, ITEM_MEDIUM, ITEM_GACHA, ITEM_SOUL Yeni sürüm türleri

Alt tür listesi yalnız şu türlerde vardır:

  • WEAPON: WEAPON_SWORD, WEAPON_DAGGER, WEAPON_BOW, WEAPON_TWO_HANDED, WEAPON_BELL, WEAPON_FAN, WEAPON_ARROW, WEAPON_MOUNT_SPEAR, WEAPON_CLAW, WEAPON_QUIVER, WEAPON_BOUQUET.
  • ARMOR: ARMOR_BODY, ARMOR_HEAD, ARMOR_SHIELD, ARMOR_WRIST, ARMOR_FOOTS, ARMOR_NECK, ARMOR_EAR, ARMOR_PENDANT.
  • AUTOUSE: AUTOUSE_POTION, AUTOUSE_ABILITY_UP, AUTOUSE_BOMB, AUTOUSE_GOLD, AUTOUSE_MONEYBAG, AUTOUSE_TREASURE_BOX.
  • MATERIAL: MATERIAL_LEATHER, MATERIAL_BLOOD, MATERIAL_ROOT, MATERIAL_NEEDLE, MATERIAL_JEWEL, MATERIAL_DS_REFINE_NORMAL, MATERIAL_DS_REFINE_BLESSED, MATERIAL_DS_REFINE_HOLLY, MATERIAL_DS_CHANGE_ATTR.
  • SPECIAL: SPECIAL_MAP, SPECIAL_KEY, SPECIAL_DOC, SPECIAL_SPIRIT. LOTTERY: LOTTERY_TICKET, LOTTERY_INSTANT. METIN: METIN_NORMAL, METIN_GOLD. FISH: FISH_ALIVE, FISH_DEAD.
  • RESOURCE: RESOURCE_FISHBONE, RESOURCE_WATERSTONEPIECE, RESOURCE_WATERSTONE, RESOURCE_BLOOD_PEARL, RESOURCE_BLUE_PEARL, RESOURCE_WHITE_PEARL, RESOURCE_BUCKET, RESOURCE_CRYSTAL, RESOURCE_GEM, RESOURCE_STONE, RESOURCE_METIN, RESOURCE_ORE, RESOURCE_AURA.
  • UNIQUE: UNIQUE_NONE, UNIQUE_BOOK, UNIQUE_SPECIAL_RIDE, UNIQUE_SPECIAL_MOUNT_RIDE, USE_SPECIAL.
  • COSTUME: COSTUME_BODY, COSTUME_HAIR, COSTUME_MOUNT, COSTUME_ACCE, COSTUME_WEAPON, COSTUME_AURA. DS ve SPECIAL_DS: DS_SLOT1..DS_SLOT6. EXTRACT: EXTRACT_DRAGON_SOUL, EXTRACT_DRAGON_HEART.

USE türünün 39 alt türü sırasıyla şunlardır:

USE_POTION, USE_TALISMAN, USE_TUNING, USE_MOVE, USE_TREASURE_BOX, USE_MONEYBAG, USE_BAIT,
USE_ABILITY_UP, USE_AFFECT, USE_CREATE_STONE, USE_SPECIAL, USE_POTION_NODELAY, USE_CLEAR,
USE_INVISIBILITY, USE_DETACHMENT, USE_BUCKET, USE_POTION_CONTINUE, USE_CLEAN_SOCKET,
USE_CHANGE_ATTRIBUTE, USE_ADD_ATTRIBUTE, USE_ADD_ACCESSORY_SOCKET, USE_PUT_INTO_ACCESSORY_SOCKET,
USE_ADD_ATTRIBUTE2, USE_RECIPE, USE_CHANGE_ATTRIBUTE2, USE_BIND, USE_UNBIND, USE_TIME_CHARGE_PER,
USE_TIME_CHARGE_FIX, USE_PUT_INTO_BELT_SOCKET, USE_PUT_INTO_RING_SOCKET, USE_CHANGE_COSTUME_ATTR,
USE_RESET_COSTUME_ATTR, USE_SELECT_ATTRIBUTE, USE_EMOTION_PACK, USE_BRAVERY_CAPE,
USE_ELEMENT_UPGRADE, USE_ELEMENT_DOWNGRADE, USE_ELEMENT_CHANGE

Listesi olmayan türlerde SubType sütununa ne yazılırsa yazılsın 0 okunur. Bu dosya setindeki QUEST_WARP, PET_PAY, USE_GACHA, SOUL_RED gibi değerler sunucuda karşılıksızdır. Listede adı olduğu hâlde oyun kodunda işleyicisi olmayan alt türler de vardır: USE_BIND, USE_UNBIND, USE_SELECT_ATTRIBUTE, USE_EMOTION_PACK, USE_BRAVERY_CAPE ve ELEMENT türleri kullanılınca hiçbir şey yapmaz. WEAPON_QUIVER takılabilir ama atış yalnız WEAPON_ARROW kabul ettiği için ok çantası işe yaramaz.

AntiFlags: kim kullanamaz, ne yapılamaz?

Bayrak Oyundaki etkisi
ANTI_FEMALE, ANTI_MALE Kadın ya da erkek karakter kullanamaz
ANTI_MUSA, ANTI_ASSASSIN, ANTI_SURA, ANTI_MUDANG, ANTI_WOLFMAN Savaşçı, ninja, sura, şaman ya da Lycan kullanamaz
ANTI_DROP Yere atılamaz
ANTI_SELL NPC'ye satılamaz
ANTI_GIVE Ticarete konamaz; ayrıca yere atılamaz, pazara konamaz, PK ölümünde düşmez
ANTI_PKDROP PK ölümünde düşmez
ANTI_STACK Aynı eşyalarla birleşmez
ANTI_MYSHOP Kişisel pazara konamaz
ANTI_SAFEBOX Depoya konamaz
ANTI_GET, ANTI_EMPIRE_A/B/C, ANTI_SAVE Tanınır ama oyunda hiçbir yerde denetlenmez

Sınıf bayrakları ters mantıkla çalışır: bayrak "bu sınıf kullanamaz" demektir. Yalnız savaşçının kullanacağı bir kılıçta ANTI_ASSASSIN, ANTI_SURA, ANTI_MUDANG ve ANTI_WOLFMAN birlikte yazılır. Oyuncuya görünen karşılıkları eşya türleri yazısındadır.

Flags: hangi bayrak gerçekten ne yapar?

Bayrak Bit Etkisi
ITEM_TUNABLE 0 Yalnız taş çıkarma kağıdının hedef kontrolünde aranır; demirci bu bayrağa bakmaz
ITEM_SAVE 1 Etkisiz
ITEM_STACKABLE 2 Üst üste biner; yığın sınırı CONFIG'deki item_count_limit, varsayılan 200
COUNT_PER_1GOLD 3 NPC marketinde fiyat adet ÷ Gold olur
ITEM_SLOW_QUERY 4 Sahibi olan eşya düzenli kaydedilmez, oyuncu çıkarken kaydedilir
ITEM_RARE, ITEM_UNIQUE 5, 6 Etkisiz
ITEM_MAKECOUNT 7 Bir adet istenince Value1 kadar yaratılır
ITEM_IRREMOVABLE 8 Giyildikten sonra çıkarılamaz
CONFIRM_WHEN_USE 9 İstemci kullanmadan önce onay sorar
QUEST_USE, QUEST_USE_MULTIPLE 10, 11 Numara quest sistemine kaydedilir; UNIQUE binek takısında giyilince quest çalışır
QUEST_GIVE 12 Etkisiz
LOG 13 Kullanım log veritabanına yazılır
ITEM_APPLICABLE 14 İstemci eşyanın başka bir eşyanın üstüne sürüklenip kullanılmasına izin verir

İki ayrıntı sık sorun çıkarır. Birincisi, artı basmak için ITEM_TUNABLE gerekmez; demirci yalnız RefinedVnum ve RefineSet'e bakar. İkincisi, QUEST_USE bayrağı ITEM_QUEST türündeki bir eşyaya konursa, kullanım quest'e gönderilmez; sıradan görev eşyalarında bu bayrak boş bırakılır.

WearFlags ve ImmuneFlags

WearFlags adları WEAR_BODY, WEAR_HEAD, WEAR_FOOTS, WEAR_WRIST, WEAR_WEAPON, WEAR_NECK, WEAR_EAR, WEAR_SHIELD, WEAR_UNIQUE ve WEAR_ARROW'dur. Birden fazla bayrak yazılırsa oyun şu öncelikle ilk eşleşen yuvayı seçer: gövde, baş, ayak, bilek, silah, kalkan, boyun, kulak, ok, özel eşya. WEAR_UNIQUE iki özel eşya yuvasından boş olanı alır. Kostüm, simya taşı ve kemer bu sütuna bakmaz, yerlerini tür ve alt türden alır. Bunların dışında WearFlags'i 0 olan bir eşya giyilemez.

ImmuneFlags'te dikkat gereken bir kayma vardır. db bu sütunu PARA, CURSE, STUN, SLEEP, SLOW, POISON, TERROR sırasıyla bite çevirir, oyun ise bağışıklık bitlerini STUN, SLOW, FALL, CURSE, POISON, TERROR, REFLECT sırasıyla okur. Giyilen eşyanın değeri hiç çevrilmeden karaktere eklendiği için sonuç şöyledir:

Dosyaya yazılan Oyunda verdiği bağışıklık
PARA Sersemleme
CURSE Yavaşlama
STUN Yere düşme
SLEEP Lanet (oyunda denetlenmez)
SLOW Zehir (denetimi kapalı)
POISON Korku (yalnız canavarlarda denetlenir)
TERROR Yansıtma, yansıyan hasarı üçte birine indirir

Varsayılan veride 9.981 eşyanın hepsinde bu sütun NONE'dur. Sersemleme, yavaşlama ve düşme bağışıklığı efsunla (APPLY_IMMUNE_STUN, APPLY_IMMUNE_SLOW, APPLY_IMMUNE_FALL) verilir ve kayma onları etkilemez. Eşyaya bağışıklık vermek istiyorsan bu sütun yerine efsun yuvasını kullan.

Fiyat, yükseltme ve yaratılma sütunları

Gold, NPC marketinden alış fiyatıdır ve satılan adetle çarpılır. Gold'u 0 olan bir eşya normal NPC marketinde bedava verilir; varsayılan veride Kılıç+0 bunlardandır. ShopBuyPrice, NPC'ye satarken kullanılır: adetle çarpılır, beşe bölünür ve çıkan tutardan %3 vergi düşülür. Satış penceresi vergiden önceki tutarı gösterir. Marketlerin kendisi NPC marketi ekleme yazısında.

RefinedVnum, artı basılınca eşyanın dönüşeceği numaradır; 0 ise demirci "daha fazla geliştirilemez" der. RefineSet, refine_proto tablosundaki satırı gösterir ve Yang, şans ile malzemeyi oradan alır. Köydeki Demirci (20016) RefineSet'i 500'ün altında olan eşyaları, Seon-Pyeong (20091) 500 ve üstünü yükseltir. Ayrıntılar yükseltme sistemi yazısında.

Üç sütun yalnız eşya ilk yaratılırken okunur. AlterToMagicItemPercent, düşen ya da kutudan çıkan eşyanın efsunlu gelme yüzdesidir; mob_drop_item'daki kill gruplarında bu yüzdenin yerine gruptaki sayı kullanılır. GainSocketPercent adının aksine yüzde değil, doğrudan açık taş yuvası sayısıdır ve en çok 3 olur; taş takma yazısındaki yuva dağılımı bu sütundan gelir. AddonType 0 değilse, değeri ne olursa olsun eşyaya rastgele bir beceri hasarı ve ortalama zarar çifti eklenir; resmî veride bu sütunda −1 yazar. Bu çiftin dağılımı ortalama zarar ve beceri hasarı yazısında.

Limit ve efsun sütunları

No LimitType LimitValue
0 LIMIT_NONE Kullanılmaz
1 LEVEL Gereken seviye
2-5 STR, DEX, INT, CON Gereken statü
6 REAL_TIME Saniye; eşya yaratıldığı anda süre başlar, 0 yazılırsa 7 gün
7 REAL_TIME_FIRST_USE Saniye; süre ilk kullanımda başlar
8 TIMER_BASED_ON_WEAR Saniye; yalnız giyiliyken azalır, 0 yazılırsa 10 saat

Bazı kaynaklarda 6. sırada PC_BANG türü bulunur ve sonraki türler bir sıra kayar. Bu yapıda PC_BANG kaldırılmıştır; başka bir kaynaktan alınmış araç ya da istemciyle karıştırılırsa süreli eşyalar yanlış görünür. Sürelerin oyuncu tarafı süreli eşyalar yazısında.

ApplyType sütunlarına APPLY_ önekli adlar yazılır: APPLY_MAX_HP, APPLY_ATT_SPEED, APPLY_ATTBONUS_HUMAN gibi. Bu yapı 107 adı tanır, APPLY_NONE'dan APPLY_MOUNT'a kadar; tam liste efsun listesi sayfasında. Dört yuvanın hepsi eşya giyildiğinde karaktere eklenir. Varsayılan veride dördüncü yuvayı yalnız dört binek kostümü kullanır.

Value sütunları türe göre ne anlama gelir?

Tür ya da alt tür Value0 Value1 Value2 Value3 Value4 Value5
WEAPON Büyü saldırısı alt Büyü saldırısı üst Saldırı alt Saldırı üst Artı bonusu
WEAPON_ARROW Her oka ek hasar
ARMOR Savunma Gövde zırhında model numarası (istemci) Artı bonusu
USE_POTION HP SP
USE_POTION_NODELAY HP SP En büyük canın yüzdesi En büyük SP'nin yüzdesi
USE_ABILITY_UP APPLY numarası Süre (sn) Miktar
USE_AFFECT Etki numarası APPLY numarası Miktar Süre (sn)
USE_TALISMAN 1 köye dönüş, 2 hatıra
USE_RECIPE Sonuç eşya 1. malzeme 1. adet 2. malzeme 2. adet Başarı yüzdesi
METIN Gereken yuva (1 gümüş, 2 altın) Taş ailesi
SKILLBOOK Beceri numarası
UNIQUE Süre Süre biçimi
TREASURE_BOX, TREASURE_KEY Kilit numarası
BELT Kemer derecesi

Düz vuruşta silahın temel hasarı Value3 ile Value4 arasından rastgele seçilip iki katına çıkarılır; Value5'in iki katı saldırı oranı uygulandıktan sonra eklenir. Beceri formüllerinde silah değeri Value3-Value4 arasından, büyü değeri Value1-Value2 arasından seçilir ve ikisine de Value5 eklenir. Value0 silahta kullanılmaz; saldırı hızı ApplyType sütunundaki APPLY_ATT_SPEED'den gelir. Zırhta sunucu savunmayı Value1 + 2 × Value5 olarak yalnız gövde, kask, ayakkabı ve kalkanda ekler; bilezik, kolye ve küpeye yazılan savunma istemcide görünür ama işlemez.

USE_ABILITY_UP yalnız dokuz efsun numarasıyla çalışır: 3 CON, 4 INT, 5 STR, 6 DEX, 7 ATT_SPEED, 8 MOV_SPEED, 9 CAST_SPEED, 53 ATT_GRADE_BONUS ve 54 DEF_GRADE_BONUS. Başka bir numara yazılırsa iksir kullanılır ama etki vermez. USE_AFFECT'te aynı etki ve puan zaten varsa yenisi eklenmez.

METIN'de aynı Value5'i taşıyan iki taş aynı eşyaya takılamaz; taşın hangi eşyaya gireceğini WearFlags (WEAR_WEAPON ya da WEAR_BODY), bonusunu Apply sütunları belirler. Altın yuva isteyen taşta hem METIN_GOLD alt türü hem Value2 = 2 yazılmalıdır, çünkü istemci gereği alt türden okur. UNIQUE'te Value2 0 ise Value0 dakika cinsinden, yalnız giyiliyken azalan süredir; 1 ise gerçek saniyedir. Anahtar ile sandığın Value0'ı eşit olmalıdır, ödül sandığın kendi numarasıyla special_item_group'tan gelir.

MAKECOUNT bayrağı taşıyan her türde Value1 yaratılan yığın adedidir. Tabloda olmayan türlerin çoğunda, örneğin saç, balık ve dönüşüm küresinde, Value değerlerini oyun çekirdeği okumaz; QUEST türünde değerleri quest betikleri item.get_value() ile okuyabilir.

Örnek satır: Kılıç+0

Sütun Değer Açıklama
Vnum, Name 10, 도+0 Türkçe adı item_names.txt'de "Kılıç+0"
Type, SubType, Size ITEM_WEAPON, WEAPON_SWORD, 2 Tek el kılıç, envanterde 2 kare
AntiFlags ANTI_MUDANG | ANTI_WOLFMAN Şaman ve Lycan kullanamaz
Flags, WearFlags ITEM_TUNABLE, WEAR_WEAPON Silah yuvasına takılır
Gold, ShopBuyPrice 0, 0 Markette bedava, satış değeri yok
RefinedVnum, RefineSet 11, 1 +1 olunca 11 numaralı eşyaya dönüşür
AlterToMagicItemPercent 15 %15 ihtimalle efsunlu düşer
LimitType0, LimitValue0 LEVEL, 0 Seviye şartı yok
ApplyType0, ApplyValue0 APPLY_ATT_SPEED, 22 Sabit saldırı hızı
Value0..5 0, 15, 19, 13, 15, 0 Büyü saldırısı 15-19, saldırı 13-15, artı bonusu 0
GainSocketPercent, AddonType 1, 0 Tek taş yuvası, ek efsun yok

Kılıç+1'in satırı neredeyse aynıdır; Value5 7 olur, RefinedVnum 12'yi, RefineSet 2'yi gösterir, Gold ve ShopBuyPrice 100'e çıkar. +0'dan +9'a bütün satırlar bu zinciri izler.

Sık yapılan hatalar

  • Yeni eşyayı yalnız sunucuya eklemek: istemci adını, simgesini ve ipucunu kendi item_proto kopyasından okur; dosyanın yeniden paketlenmesi gerekir.
  • Bir hücreyi boş bırakmak ya da satırı eksik sütunla yazmak.
  • Bayrak adını yanlış yazıp hata beklemek: db sessiz kalır, bayrak hiç eklenmez.
  • Başka bir sürümden alınmış satırları kontrol etmeden eklemek: WEAR_PENDANT, ANTI_ACCE gibi adlar bu yapıda karşılıksızdır.
  • GainSocketPercent'e 50 gibi bir yüzde yazmak: değer yuva sayısıdır, 3'te kesilir.
  • Mevcut bir numarayı yeni eşyaya vermek ya da dosyayı numara sırası dışında bırakmak.
  • Korece Name sütununu silmek ya da Türkçe adla değiştirmek: drop ve kutu dosyaları bu adı arar.

Canavar tarafındaki karşılığı mob_proto yazısında anlatılıyor.

Sık sorulan sorular

item_proto'ya bayrak yazdım ama oyunda bir şey değişmedi, neden?
db yalnız tanıdığı bayrak adlarını bite çevirir; listede olmayan ad hata vermeden atlanır. Tanınan bayrakların bir kısmı da oyunda hiç denetlenmez: ANTI_GET, ANTI_EMPIRE_A/B/C, ANTI_SAVE, ITEM_SAVE, ITEM_RARE, ITEM_UNIQUE ve QUEST_GIVE bu yapıda etkisizdir.
GainSocketPercent taş yuvası açılma yüzdesi mi?
Hayır. Adı yüzde gibi görünse de oyun bu değeri doğrudan açık yuva sayısı olarak kullanır. 2 yazılan bir silah her zaman 2 yuvalı oluşur; en çok 3 yuva açılır.
Eşyanın NPC fiyatları hangi sütunlardan gelir?
Gold, NPC marketinden alış fiyatıdır ve adetle çarpılır. NPC'ye satarken ShopBuyPrice adetle çarpılıp beşe bölünür, çıkan tutardan %3 vergi düşülür.
Boş bıraktığım hücre 0 sayılır mı?
Sayılmaz. Ortadaki boş bir sayı hücresi belirsiz bir değer alır; satır sonundaki boş hücreler ise satırı kısaltır ve db açılırken kapanır. Her hücreye bir değer, gerekiyorsa 0 yazılmalıdır.

İlgili sayfalar

Kategori: Server Kurma Proto ve Veri Dosyaları sunucu dosyaları proto eşya item_proto bayraklar

Bu sayfadaki bilgiler Metin2'nin sunucu yazılımındaki hesaplamalara ve standart oyun dosyalarına dayanır. Oyun dosyalarını değiştiren sunucularda değerler farklı olabilir. İçerikleri nasıl hazırlıyoruz?

Bu sayfa işine yaradı mı?

Giriş yap, oy ver ya da sayfayı kaydet. Okumak için üyelik gerekmez. WhatsApp X'te paylaş
Yanlış ya da eksik bir bilgi mi gördün? Bildir
Neyin yanlış olduğunu, doğrusunun ne olduğunu ve bunu nereden bildiğini yaz. Mesajın editörlere gider; yazı, kontrol edildikten sonra düzeltilir.
Yalnız editör görür.

Tartışma

Kurallar

Henüz yorum yok. Bu konuda bir deneyimin ya da sorun varsa ilk yorumu sen yaz.

Giriş yap ya da kayıt ol, sonra yorum yaz. Metin2VIP üyeliği hiçbir oyun sunucusunun hesabı değildir.