- Moderatör
- #1
- Kayıtlı
- 1 Yıl 9 Ay 15 Gün
- Katılım
- 10 Ocak 2025
- Konular
- 76
- Mesajlar
- 166
- Tepkime puanı
- 25
- Online süresi
- 8h 31m
- Puan
- 53
- Konum
- Türkiye
- Web sitesi
- www.zyncra.shop
Metin2 skilldesc.txt: Beceri Açıklamaları ve İpucu Formülleri
Konu İçeriği — Hızlı Bakış (
Metin2 • ⏱ ~5 dk okuma •
Kod: SQL)
01. skilldesc.txt ne zaman okunur?
02. Satır biçimi: 28 sütun
03. İpucundaki sayılar nasıl hesaplanır?
04. skill_proto ile ilişkisi: ikisi uyuşmazsa ne olur?
05. skilldesc.txt nasıl düzenlenir?
06. Sık hatalar
- skilldesc.txt ne zaman okunur?
- Satır biçimi: 28 sütun
Nitelik ve silah adları
- Varsayılan dosyalarda ipucu ile oyunun farkı
skilldesc.txt, istemcinin locale paketindelocale/tr/skilldesc.txtyolunda duran beceri açıklama dosyasıdır. Her satırı bir becerinin istemcideki tanımıdır: üç dereceli adı, açıklaması, koşul satırları, nitelikleri, gerektirdiği silah, simgesi, hareketi ve en çok üç etki satırı.
[01] skilldesc.txt ne zaman okunur?
İstemci dosyayı karakter seçim ekranına geçerken,item_proto,itemdesc.txtvemob_proto'dan sonra okur; hemen ardındanskilltable.txtgelir.skilltable.txt'deki bir satır ancak aynı numaraskilldesc.txt'de varsa kaydedilir.
Dosya Türkçe için cp1254 (Windows-1254) kod sayfasıyla kaydedilir. Kaynakla gelen dosyada 94 satır vardır; satırlar numara sırasında değildir, sıra önemsizdir.
[02] Satır biçimi: 28 sütun
Sütunlar sekmeyle ayrılır ve en çok 28 sütun okunur. İlk 13 sütun her satırda bulunmalıdır: istemci bunları sütun sayısına bakmadan okur, eksik bir satır istemciyi çökertebilir.
SQL:33 ASSASSIN Bıçak Çevirme Dönen Bıçak Danseden Bıçak Düşmanın çevresinde Bıçakla dönmek. Sıçrama Saldırısı Dayanıklı Zehir Saldırısı ATTACK_SKILL|CAN_CHANGE_DIRECTION|WEAPON_LIMITATION DAGGER|DOUBLE_SWORD|SWORD charyun 3 4 Saldırı Gücü %.0f-%.0f 2*minatk + (0.5*minatk + dex*9 + str*7)*k 2*maxatk + (0.5*maxatk + dex*9 + str*7)*k Zehirlenme Değişimi %.0f%% 1 + 4*k
Seviye şartında küçük bir tuzak var:skilltable.txt'deki şart yalnız bu sütunda 1'den büyük bir değer yazılıysa onun yerine geçer, çünkü koddaki koşul yeni değere değil eski değere bakar.
[03] İpucundaki sayılar nasıl hesaplanır?
İpucuuitooltip.py'de kurulur: derecesine göre ad, "Master", "Grand Master" ya da "Perfect Master" satırı, açıklama, koşul satırları; "Güncel Seviye" başlığının altında etki satırları, "Süre", "Yükleme Süresi" (bekleme) ve "Gereken SP".
- Beceri gücü: İstemci k'yı sunucudan almaz. Becerinin seviyesini kendi içine derlenmiş tabloyla yüzdeye çevirir (M1 %50, G1 %82, P %125) ve 100'e böler. Sunucuda
SKILL_POWER_BY_LEVELya da bir becerinin bMaxLevel çarpanı değiştirilirse ipucu bunu bilmez. FormüllerdekileSkillPointaynı değerdir. - İlk etki satırı:
skilltable.txt'deki güç formülü alınır. Formüldeatk,mwepya danumbergeçiyorsa istemci formülü ikiye ayırır:numberyerineminvemax,atkyerineminatkvemaxatk,mwepyerineminmwepvemaxmwepyazar. Üç Yönlü Kesme'nin formülüne ayrıca "× 3" eklenir, ipucu üç darbenin toplamını gösterir. Kamuflaj (34) ile lonca becerilerinde (151-157) bu değişiklik yapılmaz,skilldesc.txt'deki formül kalır. - İkinci ve üçüncü satır:
skilldesc.txt'deki en az ve en çok formülüyle hesaplanır; sunucununszPointPoly2değerini istemci hiç görmez. - Yazım: Sonuç eksiyse artıya çevrilir. Metinde
%.0fvarsa iki sayı aşağı yuvarlanır, sonra metin C'nin printf biçimiyle doldurulur. Biçimlendirilmiş satır en çok 64 karakterdir, fazlası kesilir. - Süre, bekleme, SP:
skilltable.txt'nin süre, bekleme, SP ve saniyelik SP formüllerinden gelir. İpucu bekleme süresini büyü hızı uygulanmadan yazar; istemcinin bekleme kilidi ise büyü hızını hesaba katar.
[04] skill_proto ile ilişkisi: ikisi uyuşmazsa ne olur?
skilltable.txt'nin dokuz sütunuskill_proto'nun aynı adlı sütunlarının kopyasıdır: dwVnum, bMaxLevel, bLevelLimit, szPointPoly, szSPCostPoly, szDurationPoly, szDurationSPCostPoly, szCooldownPoly ve dwTargetRange. Sütunların sunucudaki anlamı skill_proto yazısında.
Dehşet ile Karanlık Koruma'nın ilk satırındaki karışıklık,skilldesc.txt'deki metin ileskill_proto'nun ilk etkisinin farklı şeyleri anlatmasından doğar: metin dosyadan, sayıskilltable.txt'den gelir.
[05] skilldesc.txt nasıl düzenlenir?
- Önce sunucu. Hasar, süre, SP ya da bekleme değişecekse
skill_proto'yu değiştir ve/reload pile yükle. İstemci dosyaları gerçek değeri değiştirmez. - skilltable.txt'yi skill_proto'dan üret. Elle kopyalamak hata kaynağıdır. Aşağıdaki sorguyu
skilltable.sqladıyla kaydedip yalnız SELECT yetkisi olan bir kullanıcıyla çalıştır;-pparolayı komut satırına yazmadan sorar.-Nbaşlık satırını kaldırır,-Bsütunları sekmeyle ayırır. Son sütun (dwTargetRange) her satırda bir sayı olduğu için dokuz sütun korunur;skilldesc.txt'de karşılığı olmayan satırlar istemcide sessizce atlanır.
SQL:SELECT dwVnum, bMaxLevel, bLevelLimit, szPointPoly, szSPCostPoly, szDurationPoly, szDurationSPCostPoly, szCooldownPoly, dwTargetRange FROM skill_proto ORDER BY dwVnum;
SQL:mysql -N -B -u okuyucu -p player < skilltable.sql > skilltable.txt - Metni ve ikinci satırları skilldesc.txt'de düzelt. Dosyayı cp1254 ve CRLF satır sonuyla, sekmeleri koruyan bir düzenleyiciyle aç; boş sütunları silme, araya sekme ekleme.
- Paketle.
skilldesc.txtlocale paketindelocale/tr,skilltable.txtaynı pakettelocale/commonaltındadır; paket yeniden oluşturulur, ayrıntı pack dosyaları yazısında. - Dene. GM karakterle
/setskill <beceri numarası> <seviye>yazıp beceriyi 20 (M1), 30 (G1) ve 40 (P) seviyesine getir, ipucunu her derecede oku.syserr.txt'deStrange Skill Attribute,STRANGE_SKILL_TYPE,Strange Formulaya daOut Of Rangesatırı varsa düzelt.
[06] Sık hatalar
- İlk satırın formülünü skilldesc.txt'de değiştirmek. Türkiye ve Avrupa istemcisinde bu formül kullanılmaz; sayı
skilltable.txt'den gelir. - Yalnız skill_proto'yu değiştirmek. İpucu, SP denetimi ve bekleme kilidi eski değerle kalır.
- Formülde istemcinin tanımadığı ad kullanmak. Sunucuda geçerli olan
mtkvewepistemcide ilk satırda bile tanınmaz; büyü silahı içinmwepyaz. İkinci ve üçüncü satırlardaatkda tanınmaz,minatkvemaxatkgerekir.MinMWEPveminmtksilahın büyülü değil normal saldırısını verir. - Biçim belirtecini bozmak. Metinde
%dkullanmak sayıyı bozar, çünkü değerler ondalıklı sayı olarak gönderilir; aralık için iki%.0f, yüzde işareti için%%yazılır.
[07] İlgili sayfalar
- Metin2 Beceri Gücü Tablosu: Seviyeye Göre Güç Yüzdesi ve Anlamı (Wiki)
- Metin2 Client Dil Dosyaları: locale_game, itemdesc ve skilldesc (Server kurma)
- Metin2 Pack Dosyaları: EPK ve EIX Nedir? (Server kurma)
- Metin2 skill_proto Sütunları ve Formüller (Server kurma)
Sıkça Sorulan Sorular (SSS)
Soru 1: Metin2 skilldesc.txt: Beceri Açıklamaları ve İpucu Formülleri rehberindeki ayarlar tüm sunucu yapılarında geçerli mi?
Evet, rehberde paylaşılan temel mekanikler hem emek (zor) hem de orta/vs'lik sunucu kurgularında doğrudan uygulanabilir; sunucu oranlarına göre küçük ince ayarlar yapılabilir.
Soru 2: En yüksek verim için hangi sıralama takip edilmeli?
Öncelikle karakter/sistem temel gereksinimlerini tamamlayıp ardından konu içerisindeki adım adım dizilim ve optimizasyon tavsiyelerini sırasıyla uygulamanız en yüksek performansı sağlar.

