aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Metin2

Metin2 Simya Sistemi: Ejder Taşı Kurulumu ve Bonuslar

Metin2 simya sistemi, oyuncuların ejder taşı (Dragon Soul Stone) yerleştirerek karakterlerine ek bonuslar kazandırdığı, sunucunun en çok talep gören uç-içerik mekaniklerinden biridir. Resmî adıyla Dragon Soul olan bu sistem, oyun içinde "simya" arayüzü olarak görünür ve doğru kurulduğunda hem ekonomiyi hem de oyuncu bağlılığını ciddi şekilde besler. Bu rehberde sistemi sunucu kaynağından client tarafına kadar adım adım kuruyor, ejder taşlarını item_proto içinde tanımlıyor ve bonusları dragon_soul_table.txt üzerinden ayarlıyoruz.

Sistem nasıl çalışır?

Simya sistemi üç ayrı katmandan oluşur ve hepsinin uyumlu olması şarttır:

  • Sunucu kaynağı (game/db): Dragon Soul desteğini içermelidir. Resmî 2014+ ve çoğu modern (TMP4, Marty, vb.) kaynak bu desteği barındırır. Eski kaynaklarda fonksiyon seti elle eklenmelidir.
  • Veri tabanı/proto: Ejder taşları özel bir item tipiyle (ITEM_DS) tanımlanır ve simya envanterine yerleşir.
  • Yapılandırma dosyası: dragon_soul_table.txt taşların kademe (grade), basamak (step), güç (strength) ve hangi bonusları vereceğini belirler.

Oyuncu, simya NPC'sini ya da arayüz kısayolunu (varsayılan olarak ayrı bir Dragon Soul envanteri) açar, taşı slota yerleştirir ve taşın tipi (örneğin Savaş, Büyü, Soluk, Mod ejder taşı) ile karakter sınıfına uygun bonus aktif olur.

Gerekli dosyalar ve ön koşullar

Başlamadan önce şunların yerinde olduğundan emin olun:

  • Sunucu tarafında dragon_soul_table.txt (genellikle share/locale/<dil>/ ya da kaynağın okuduğu data klasöründe).
  • Client tarafında dragon_soul.txt ve simya arayüz Python betikleri (uiDragonSoul.py, game.py içindeki çağrılar).
  • itemtypes.txt içinde ITEM_DS tipinin tanımlı olması.
  • Veri tabanı erişimi: item_proto ve client item_proto dump aracı (örn. txt <-> proto dönüştürücü).

Bir dosyayı düzenlemeden önce yedek alın. Ejder taşı sistemini bozmanın en kolay yolu, bonus indeksleriyle item_proto arasında uyumsuzluk yaratmaktır.

Ejder taşını item_proto içinde tanımlama

Ejder taşları normal eşyalardan farklı olarak ITEM_DS tipiyle ve alt tip olarak ejder taşı türüyle tanımlanır. Bir item_proto satırı kavramsal olarak şu alanları taşır:

vnum    name              type      subtype     value0  value1  value2  value3  value4  value5
45301   "Savas Ejder Tasi"  ITEM_DS   DS_SLOT...   0       1       1       0       0       0

Burada kritik olan value alanlarıdır: bunlar taşın kademesini (grade), basamağını (step) ve gücünü (strength) kodlar. Bu değerler dragon_soul_table.txt içindeki tanımlarla birebir eşleşmek zorundadır. Eşleşmezse taş envantere girer ama bonus üretmez ya da sunucuyu çökertir.

İsimlerde Türkçe karakter kullanmaktan kaçının; proto okuyucu çoğu kaynakta UTF-8 dışı kodlama bekler. Yerelleştirilmiş ismi client item_names.txt üzerinden verin.

dragon_soul_table.txt yapısı

Bu dosya simya sisteminin beynidir. Genel olarak bölümlere ayrılır ve her bölüm taşların davranışını tanımlar:

  • BASIC: Kaç tür ejder taşı slotu olduğu ve genel sayım.
  • GRADE: Her kademenin (normal, kutsanmış, ejder, efsane vb.) olasılık ve isim ağırlıkları.
  • STEP: Aynı kademe içindeki basamaklar; daha yüksek basamak daha güçlü bonus aralığı verir.
  • STRENGTH / REFINE: Taşı arındırma/güçlendirme (refine) oranları.
  • APPLY tabloları: Her tip + kademe + basamak kombinasyonu için verilebilecek bonuslar ve min–max değer aralıkları.

Bonusları tanımlarken oyunun gerçek APPLY_* sabitlerini kullanın. Sık kullanılanlar:

APPLY_MAX_HP            +HP
APPLY_ATT_GRADE_BONUS  +Saldiri Degeri
APPLY_DEF_GRADE_BONUS  +Savunma
APPLY_CRITICAL_PCT     +Kritik %
APPLY_PENETRATE_PCT    +Delme %
APPLY_ATTBONUS_MONSTER +Canavarlara karsi hasar

Bir bonus satırı, ilgili APPLY tipini ve değer aralığını belirtir; sunucu, taş üretildiğinde bu aralıktan rastgele (ya da ağırlıklı) bir değer seçer. Aralıkları dengeli tutun: tek bir taşla %50 kritik vermek ekonomiyi ve PvP dengesini anında bozar.

Bonusları dengeli tanımlama

Pratik bir denge yaklaşımı:

  • Düşük kademe taşlar yalnızca APPLY_MAX_HP, küçük savunma gibi "güvenli" bonuslar versin.
  • Yüzde tabanlı güçlü bonuslar (kritik, delme, ortalama hasar) yalnızca üst kademe + üst basamakta açılsın ve dar aralıkta tutulsun.
  • Taş tiplerini sınıflara göre ayırın: Savaş taşı yakın dövüş, Büyü taşı sura/şaman büyüsü, Soluk/Mod taşı yardımcı bonuslar gibi.

Her değişiklikten sonra dosyayı kaydedip game sürecini yeniden başlatın; dragon_soul_table.txt çoğu kaynakta yalnızca açılışta okunur, hot-reload yoktur.

Client tarafı ve test

Sunucu hazır olduğunda client'ı eşitleyin:

  • Client dragon_soul.txt dosyasını sunucudakiyle aynı tip/kademe/basamak yapısında tutun.
  • Yeni item_proto ve ikon (icon/item/) dosyalarını client'a paketleyin.
  • Test için bir GM hesabıyla /item <vnum> komutuyla taşı verin, simya envanterine yerleştirin ve karakter durum panelinde bonusun yansıdığını doğrulayın.

En sık yapılan hata, client ve sunucu proto'sunun farklı olmasıdır; bu durumda taş "bilinmeyen eşya" görünür ya da yerleştirildiğinde client çöker. İkincisi, dragon_soul_table.txt içindeki bir APPLY tipinin yazım hatası — bunlar sessizce bonusu düşürür, bu yüzden sunucu açılış log'unu mutlaka kontrol edin.

Sık Sorulan Sorular

Eski sunucu kaynağımda Dragon Soul desteği yoksa ne yaparım?

2013 öncesi bazı kaynaklarda Dragon Soul motoru eksiktir. Bu durumda modern bir kaynağa (resmî 40k+, TMP4 veya Marty tabanlı) geçmek, sistemi elle backport etmekten çok daha güvenlidir; backport, item ve karakter motoruna derin dokunuş gerektirir.

Bonus değerleri hiç görünmüyor, sebebi ne olabilir?

Genellikle üç nedenden biri: item_proto'daki value alanları dragon_soul_table.txt ile eşleşmiyor, APPLY sabiti yanlış yazılmış, ya da client proto güncellenmemiş. Sunucu açılış log'undaki "dragon soul" satırlarını okuyarak hangisini çözün.

Taşları nasıl arındırma (refine) yapabilirim?

Arındırma, dragon_soul_table.txt içindeki REFINE/STRENGTH bölümünün oranlarıyla çalışır. Belirli sayıda aynı tip taşı birleştirerek bir üst kademe taş üretirsiniz; oranları buradan düşük tutarak refine malzemelerine ekonomik değer kazandırabilirsiniz.

Simya sistemini sunucunuza sorunsuz entegre etmek mi istiyorsunuz? Dragon Soul kurulumu, dengeli bonus tabloları ve client paketlemesi konusunda destek için benimle iletişime geçin — kaynağınıza uygun, çökmeyen bir simya sistemi birlikte kuralım.

Bu kategorideki tüm yazılar →

Devamı için