İçeriğe geç

Metin2 cube.txt Tarif Yazımı

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

Kısaca: cube.txt, NPC'lerin birleştirme penceresinde yaptığı tariflerin dosyasıdır ve sunucunun locale klasöründe durur. Her tarif section satırıyla başlar, end ile biter; arada npc ile NPC numarası, item ile malzeme ve adedi, reward ile ödül ve adedi, gold ile Yang ücreti, percent ile başarı şansı yazılır. Eşyalar yalnız numarayla yazılır. Dosya oyun çekirdeği açılırken okunur, /reload c ile yalnız komutun yazıldığı çekirdekte yenilenir; pencereyi açmak için NPC'nin görevinde cube open komutu gerekir.
İçindekiler
  1. Tarif bloğu nasıl yazılır?
  2. Sunucu dosyayı nasıl okur?
  3. Tarif nasıl eşleşir, malzeme nasıl düşülür?
  4. Ödül nasıl verilir?
  5. Pencere nasıl açılır?
  6. Tarif listesi ne zaman güncellenir?
  7. Sık yapılan hatalar

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: Section ile section aynı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 rewards yazı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 text düş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 open eklememek.
  • /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

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?

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.