Metin2 Geliştiricileri İçin Rehber: skill_proto, szPointPoly ve szMasterBonusPoly Ayarları
Metin2 geliştiricileri için skill_proto tablosu, oyundaki yeteneklerin tüm kimliğini belirleyen merkez noktadır. Skillerin kaç vuracağından, hangi seviyede ne kadar etkili olacağına, hatta oyuncunun stat dağılımından nasıl etkileneceğine kadar her şey bu tablo üzerinden belirlenir. Bu tablodaki en önemli ve en çok karıştırılan alanlar ise szPointPoly ve szMasterBonusPoly değerleridir.
Bu iki parametreyi doğru anlamak, dengeli bir oyun yaratmanın temel taşlarından biridir. Çünkü her yetenek sadece "vuruş gücü" değildir; taban hasarı, bonus çarpanları, karakterin stat değerleri ile etkileşimi ve üst sınır hesaplamaları hep bu iki formül ile şekillenir.
Bu rehberde, Metin2 PvP ve PvM dengesini kurmak için hayati önem taşıyan bu iki SQL sütununu detaylıca inceleyeceğiz.
szPointPoly Nedir?
szPointPoly, bir yeteneğin (skill) temel hasar formülünü ifade eden alandır. Bu alan, oyunun iskeletini oluşturan matematiksel hesabın ilk adımıdır. Yani bir yetenek kaç vuracaksa, o vuruşun omurgası burada belirlenir.
Genellikle şu durumlar için kullanılır:
Taban hasarın hesaplanması.
Karakter statlarının (STR, DEX, INT, CON) etkisinin belirlenmesi.
Yetenek seviyesine göre hasar artışının belirlenmesi.
Minimum hasar hesaplaması.
Örnek Bir Kullanım
(100 + str + lv * 3) * k
Buradaki değişkenlerin anlamı şöyledir:
100: Yeteneğin temel gücüdür.
str: Karakterin güç (Strength) statıdır.
lv: Yetenek seviyesidir.
k: Oyunun kaynak kodlarında (source) tanımlanmış katsayı/çarpandır.
szMasterBonusPoly Nedir?
szMasterBonusPoly ise genellikle yeteneğin maksimum potansiyelini belirleyen alandır. Skillin maksimum vurabileceği değerin nerede sınırlanacağı veya üst seviye oyunculara (Master, Grand Master, Perfect Master) nasıl bir ekstra güç sağlayacağı bu alanda belirlenir.
Genellikle şu amaçlarla kullanılır:
Üst seviye bonusları.
Maksimum hasar çarpanları.
Master seviyede eklenen ekstra formüller.
Bonus etkiler ve kritik üst sınır hesapları.
Örnek Bir Mantık
(150 + str * 2) * k
Burada amaç taban hasarı değil; skillin üst sınırını belirlemek ya da ek bonus eklemektir.
Birçok geliştirici skillerde şu mantığı kurar:
szPointPoly → Minimum / Taban Hasar
szMasterBonusPoly → Maksimum / Bonus Hasar
Neden İki Ayrı Formül Var?
Metin2’nin eski sürümlerinden beri uygulanan bu sistemin asıl amacı, daha esnek bir hasar dengesi kurmaktır. Sadece tek bir formül olsaydı, oyunun mekaniği çok düz ve tahmin edilebilir olurdu.
Örneğin: Bir skillin taban hasarı çok düşük olabilir ama üst sınır çarpanı yüksek olabilir. Ya da tam tersi, taban hasarı yüksek ama bonus çarpanı düşük tutulabilir.
Bu ikili yapı sayesinde:
PvP Dengesini Ayarlamak: Karakterler arası vs. atarken hasar dengesini sağlamak kolaylaşır.
PvM Odaklı Skiller: Yaratıklara karşı kullanılan yetenekler daha farklı şekilde davranabilir.
Stat Etkisi: Oyuncunun stat dağılımı skile farklı oranlarda etki eder.
Güç Artışı: Master veya Grand seviyesinde güç artışı kontrol altında tutulur.
SQL Örnekleri ile Açıklama
Aşağıdaki satır tipik bir skill tanımlama biçimidir:
szPointPoly:
(100 + str + lv * 3) * kszMasterBonusPoly:
(150 + str * 2) * k
Bu ne demek? Oyuncunun stat değerleri taban hasarı daha orta seviyede etkilerken, yetenek Master seviyeye gelince skillin çarpanı ciddi şekilde artar ve üst sınır daha yukarıdan hesaplanır. Özellikle bedensel savaşçı hava kılıcı, ninja suikast, şaman büyü çarpmaları gibi skillerde bu iki parametrenin doğru ayarlanması çok fark yaratan bir detaydır.
Hangi Değişiklik Ne Sonuç Doğurur?
1. szPointPoly değerini arttırmak
Skill'in minimum hasarı direkt artar. Yetenek her vuruşunda istikrarlı olarak daha yüksek sayılar yazar.
2. szMasterBonusPoly değerini arttırmak
Skill'in maksimum potansiyeli artar. Özellikle kritik ve delici vuruşlarda ekranda çok büyük sayılar görülür.
3. İki formülün de aynı olması
Skill minimum ve maksimum açıdan benzerdir. Makas daralır, dengeli ve düz bir hasar çıkarır.
4. Aralığın açık olması
Örnek:
Min:
(80 + str * 1.2)Max:
(200 + str * 2.5)
Bu durumda skillin min ve max aralığı genişler. Oyuncular bazen çok vurur bazen az vurur. Yani oyundaki RNG (Şans faktörü) hissi artar.
PvP ve PvM İçin Ayar Önerileri
Oyun yapınıza göre (Wslik veya Emek server) bu ayarlar değişebilir ancak genel kabul gören yaklaşımlar şunlardır:
PvP İçin Öneriler
szPointPoly düşük, szMasterBonusPoly dengeli tutulabilir.
Ani ve aşırı yüksek hasar veren ("tek atma" gibi) bonuslar azaltılabilir.
Bu sayede vs'ler daha uzun sürer ve taktik ön plana çıkar.
PvM İçin Öneriler
Taban hasar (szPointPoly) daha yüksek tutulabilir.
Bonus çarpanı daha düşük bırakılabilir.
Bu sayede oyuncu yaratığa (boss veya metin) sabit ve stabil bir hasar verir, sürpriz yaşamaz.
Test ve Hata Önleme
Skill_proto tablosunda formül düzenlerken en çok yapılan hatalar şunlardır:
Parantez Hataları: Açılan parantezin kapatılmaması tüm skill sistemini bozabilir.
Fazla Boşluk Kullanımı: Gereksiz boşluklar bazen parser hatasına yol açabilir.
Tanımsız Değişken: Oyunda olmayan bir stat kodunu (örn:
dexyerine yanlış bir kısaltma) yazmak.Eksik Çarpma İşareti:
3*lvyerine3lvyazmak.
Değişiklik Yapmadan Önce Mutlaka:
Veritabanı (SQL) yedeği alın.
Formülleri not defterinde yazıp düzgün göründüğünden emin olun.
Test sunucusunda her yetenek seviyesi (M1, G1, P) ile hasarı deneyin.
Sonuç
szPointPoly ve szMasterBonusPoly, Metin2’de yeteneklerin hasar hesaplamasını belirleyen en kritik iki formül alanıdır. Bu iki alan sayesinde skillin taban hasarını, maksimum potansiyelini, statlara duyarlılığını ve PvP/PvM dengelerini özgürce ayarlayabilirsiniz.
Bu iki formül doğru şekilde kullanıldığında, oyundaki dengeyi sağlamak hem daha kolay hem de geliştirici için daha esnek bir hale gelir.

