Metin2 cube.txt Tarif Yazımı
Hazırlayan: Metin2VIP Editörleri Yayın: 5 dk okuma
İçindekiler
cube.txt, NPC'lerin birleştirme penceresinde yaptığı tariflerin dosyasıdır ve sunucunun share/locale/turkey klasöründe durur. Her tarif section satırıyla başlar ve end ile biter; arada tarifi yapacak NPC, malzemeler, ödül, Yang ücreti ve başarı şansı yazılır. Dosyayı oyun çekirdeği açılırken okur ve tarifleri dosyadaki sırayla belleğe alır.
Aşağıdaki kurallar oyun çekirdeğinin kodundan çıkarıldı; resmî yapıdan türeyen sunucuların çok büyük çoğunluğunda aynıdır. Dosyadaki tarifler sunucu ayarıdır. Varsayılan dosyadaki 61 tarifin oyuncu tarafı cube tarifleri sayfasında.
Tarif bloğu nasıl yazılır?
Varsayılan dosyanın ilk tarifi şöyledir:
section
npc 20018
item 50721 1
reward 50801 1
percent 100
end
Baek-Go, bir Şeftali Çiçeği karşılığında %100 şansla bir Şeftali Çiçeği Suyu verir. Satırların anlamı:
| Anahtar | Değerler | Anlamı |
|---|---|---|
| section | Yeni tarif başlar | |
| npc | NPC numarası | Tarifi yapan NPC; birden çok satır yazılabilir |
| item | eşya numarası, adet | Malzeme; satırların hepsi gerekir |
| reward | eşya numarası, adet | Ödül; birden çok satır yazılırsa biri seçilir |
| gold | Yang | İsteğe bağlı ücret |
| percent | 1-100 | Başarı şansı |
| end | Tarifi denetler ve listeye ekler |
Malzemeli ve ücretli bir tarif de aynı düzeni izler. Yu-Hwan'ın kemer tariflerinden biri:
section
npc 20017
item 50624 10
item 27992 2
item 51001 30
item 70251 5
item 70252 5
reward 18000 1
gold 10000
percent 100
end
On Bakır, iki Beyaz İnci, otuz Enerji Parçası, beşer Kırmızı ve Mavi Ot ile 10.000 Yang, bir Keten Kemer +0 verir. Varsayılan dosyada tariflerin hepsinde tek NPC ve tek ödül vardır; malzeme sayısı 1 ile 5 arasındadır, 31 tarif Yang ister.
Sunucu dosyayı nasıl okur?
Okuyucu basittir ve çoğu hatayı sessizce yutar:
- Her satır boşluk, sekme ya da satır sonuyla bölünür; Windows satır sonu sorun değildir. Satırın ilk sözcüğü anahtardır, sonraki iki sözcük sayı olarak okunur, üçüncüden sonrası yok sayılır.
- Anahtarlar büyük/küçük harf duyarsızdır:
Sectionilesectionaynıdır. Tanınmayan bir anahtar hata vermeden atlanır. - Yorum yalnız satırın ilk karakteri
#ise yorumdur. Varsayılan dosyadaki tarif başlıkları Korece yorumlardır. - Değerler yalnız sayıdır. Drop dosyalarındaki gibi Korece eşya adı yazılamaz; adla yazılan bir değer 0 okunur. Drop dosyalarının ad kuralları drop dosyaları yazısında.
- Bir satır en çok 255 karakter okunur.
- NPC numarası 0-65.535 arasında tutulur.
end satırında oyun tarifi denetler: NPC numarası 0, malzeme ya da ödül numarası 0, adet 0 olan tarif atılır. Bu denetim yalnız geliştirici günlüğüne "something wrong" yazar; syserr'de iz kalmaz. Adedi unutulan bir item 50721 satırı bu yüzden bütün tarifi görünmez biçimde siler. end satırı unutulan tarif de listeye hiç girmez, sonraki section yeni bir tarif açar. Dosyada section'dan önce gelen bir npc ya da item satırı ise boş bir tarife yazmaya çalışır ve çekirdeği çökertebilir; dosyanın ilk anahtarı her zaman section olmalıdır.
Dosya hiç yoksa günlüğe Cube_Init failed düşer, çekirdek açılmaya devam eder ve hiçbir tarif çalışmaz.
Tarif nasıl eşleşir, malzeme nasıl düşülür?
Cube penceresinde 24 kutu vardır. Oyuncu "Yap" dediğinde oyun dosyadaki tarifleri baştan sona dener ve o NPC'nin, malzemelerinin hepsi pencerede yeterli adette bulunan ilk tarifini seçer. Adetler pencerenin bütün kutularından toplanır: iki ayrı yığında beşer Kırmızı Ot, on Kırmızı Ot sayılır.
Bundan iki kural çıkar. Malzemeleri bir başka tarifin malzemelerinin alt kümesi olan bir tarif dosyada önce yazılırsa, sonraki tarif hiç yapılamaz; pencere her seferinde öndekini seçer. Özel tarifleri genel olanlardan önce yaz. İkincisi, pencereye fazladan konan eşyalar düşülmez; tarif ne kadar istiyorsa o kadarı silinir, gerisi envanterde kalır.
Yapım sırası da önemlidir. Oyun önce Yang'ı denetler, sonra ödülü seçer, malzemeleri siler, Yang'ı düşer ve en son 1-100 arası zarı percent ile karşılaştırır. Başarısız denemede malzeme de Yang da geri gelmez; percent yazılmayan tarif 0 sayılır ve hiç tutmaz. Varsayılan dosyada bütün tarifler %100'dür.
Ödül nasıl verilir?
Birden çok reward satırı yazılırsa her denemede biri eşit şansla seçilir; adetle ağırlık verilemez. Seçim zardan önce yapılır; başarısız denemede hiçbir ödül verilmez.
Ödül her zaman yeni yaratılır. Malzeme olarak konan silahın ya da zırhın efsunları, taşları ve artısı ödüle geçmez; ödül kendi item_proto satırındaki efsunlu düşme yüzdesiyle rastgele efsun alabilir. Varsayılan dosyada Jae-Seon Kim'in tarifleri Triton Kılıcı+9 gibi eşyaları malzeme olarak ister; bu tariflerde eski eşyanın efsunları kaybolur. Sütunun anlamı item_proto yazısında.
Ödül adedi bir bayta sığmalıdır; 255'ten büyük adet taşar ve küçük bir sayıya döner. Yığılabilir ödüller önce envanterdeki aynı eşyanın yığınlarına, CONFIG'deki yığın sınırına kadar eklenir. Şebnemler istisnadır: on şebnem tek eşya olarak yaratılır ve hepsi aynı değeri taşır.
Pencere nasıl açılır?
cube.txt pencereyi açmaz. NPC'nin konuşma görevinde command("cube open") olmalıdır; varsayılan görev şöyledir:
quest cube begin
state start begin
when 20018.chat."Şifalı Bitkiler Bilimi " or 20017.chat."Şifalı Bitkiler Bilimi " or 20022.chat."Gizli tarif" begin
say_title(npc.get_name())
say("Onları denemek istermisin? ")
wait()
setskin(NOWINDOW)
command("cube open")
end
end
end
Komut gelince oyun üç şeye bakar: NPC'nin cube.txt'de en az bir tarifi olmalı, oyuncu NPC'ye 10 metreden yakın olmalı ve ticaret, pazar, NPC dükkânı ya da depo penceresi açık olmamalıdır. Yeni bir NPC'ye tarif verirken görevi de güncellemek gerekir; görev yazımı quest yazma yazısında. Bazı sunucu paketlerinde Jae-Seon Kim'in görev satırı yorum içinde gelir; o NPC'nin tarifleri dosyada olsa da pencere açılmaz.
Tarif listesi ne zaman güncellenir?
Penceredeki "yapılabilecekler" listesi, çekirdek açıldıktan sonra ilk kez bir cube penceresi açıldığında bir kez kurulur. Liste kurulurken:
- Birden çok ödüllü tarifler listeye alınmaz, günlüğe
Does not support multiple rewardsyazılır; tarif yine çalışır. - Birden çok NPC'li tarif yalnız ilk yazılan NPC'nin listesinde görünür.
- Aynı ödülü veren ve malzemesi aynı eşyanın farklı artıları olan tarifler tek satırda "ya o ya bu" diye birleştirilir.
- Bir NPC'nin listesi 512 karakterlik sohbet sınırını aşarsa liste hiç gönderilmez ve günlüğe
Too long cube result list textdüşer. Her tarif listede 8-11 karakter tutar; bir NPC'ye 50'den fazla tarif vermek listeyi boşaltabilir.
/reload c tarifleri yalnız komutun yazıldığı oyun çekirdeğinde yeniler. Liste ise yeniden kurulmaz: tarifler yeni, penceredeki liste eski kalır. Listeyi de yenilemek için çekirdeği yeniden başlat. GM komutlarının ayrıntısı GM komutları rehberi yazısında.
Sık yapılan hatalar
- item ya da reward satırında adedi yazmamak: tarif sessizce düşer.
- percent satırını unutmak: tarif her seferinde başarısız olur ve malzemeyi yer.
- Eşya adı yazmak; yalnız numara okunur.
- Genel bir tarifi özel bir tarifin önüne koymak.
- Bir NPC'ye tarif yazıp görevine
cube openeklememek. /reload c'yi tek kanalda yazıp bütün kanalların güncellendiğini sanmak.- Ödül adedini 255'in üstünde yazmak.
- Efsunlu silahı malzeme yapan bir tarifte efsunların ödüle geçeceğini düşünmek.
Sık sorulan sorular
- cube.txt'yi değiştirdim, sunucuyu yeniden başlatmam gerekir mi?
- Gerekmez; IMPLEMENTOR yetkili bir karakterle /reload c yazmak tarifleri yeniler. Komut yalnız yazıldığı oyun çekirdeğinde çalışır, her kanal için ayrı yazılmalıdır. Penceredeki tarif listesi ise çekirdek yeniden başlayana kadar eski hâliyle gösterilir.
- Tarif doğru ama NPC'ye konuşunca cube penceresi açılmıyor. Neden?
- Pencereyi tarif dosyası değil, NPC'nin konuşma görevindeki cube open komutu açar. NPC'nin görevi yoksa ya da cube.txt'de o NPC numarasıyla en az bir tarif yoksa pencere açılmaz. Oyuncunun NPC'ye 10 metreden yakın olması ve ticaret, depo, pazar pencerelerinin kapalı olması da gerekir.
- cube.txt'de eşya adı yazabilir miyim?
- Yazamazsın. Drop dosyalarından farklı olarak cube.txt yalnız sayı okur; npc, item ve reward satırlarına NPC ve eşya numaraları yazılır.
- Bir tarife birden fazla ödül yazarsam ne olur?
- Her denemede ödül satırlarından biri eşit şansla seçilir. Tarif çalışır, ama pencerenin tarif listesinde görünmez; liste yalnız tek ödüllü tarifleri gösterir.
İlgili sayfalar
- Metin2 Drop Dosyaları: mob_drop_item ve special_item_group Biçimi (Server kurma)
- Metin2 GM Komutları: En Çok Kullanılan Komutlar ve Yetki Seviyeleri (Server kurma)
- Metin2 item_proto Rehberi: Sütunlar, Türler ve Bayraklar (Server kurma)
- Metin2 NPC Marketi Nasıl Eklenir? shop ve shop_item Tabloları (Server kurma)
- Metin2 Quest Nasıl Yazılır? Lua Quest Yapısı, State ve When Blokları (Server kurma)
Kategori: Server Kurma Yapılandırma yapılandırma cube cube.txt tarif sunucu dosyaları
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?