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

Metin2 Drop Ayarları: common_drop ve mob_drop

Bir Metin2 sunucusunda ekonomiyi ve oynanışı en çok belirleyen şey, doğru yapılandırılmış Metin2 drop ayarlarıdır. Hangi item'in hangi mob'dan, hangi seviyede ve hangi olasılıkla düşeceği iki ana metin dosyasında tutulur: common_drop_item.txt ve mob_drop_item.txt. Bu yazıda bu dosyaların yapısını, kolonların ne anlama geldiğini, oranları nasıl hesaplayacağını ve en önemlisi değişiklikleri canlıya almadan nasıl güvenli test edeceğini adım adım anlatıyorum.

Drop dosyaları nerede durur ve ne işe yarar

Drop tabloları game çekirdeğinin başlangıçta okuduğu düz metin dosyalarıdır ve genelde sunucu dosyalarında share/locale/<dil>/ veya çekirdeğin çalıştığı dizinde bulunur. Birbirini tamamlayan dört dosya vardır:

  • common_drop_item.txt — Seviye aralığı ve mob rütbesine göre çalışan genel drop tablosu. Belirli bir mob'a bağlı değildir; "şu seviyedeki tüm canavarlar şu item'i şu oranla düşürebilir" kuralını kurar.
  • mob_drop_item.txt — Mob'a özel droplar. Grup mantığıyla çalışır ve kill/drop gibi farklı tiplerle aynı mob için birden çok kural tanımlamana izin verir.
  • etc_drop_item.txt — Tek tek item için basit, mob-bağımsız olasılık tanımları (örneğin nadir bir malzeme).
  • drop_item_group.txt — Kazma/balıkçılık/kutu gibi grup tabanlı içerik dropları.

Çoğu yeni başlayan tüm dengeyi yalnızca mob_drop_item.txt üzerinden kurmaya çalışır; oysa genel malzeme ve para akışını common_drop_item.txt ile yönetmek çok daha temiz bir tasarımdır.

common_drop_item.txt: seviye ve rütbe tabanlı genel drop

Bu dosyada her satır bir item kuralıdır. Tipik bir satır şu kolonları içerir: başlangıç seviyesi, bitiş seviyesi, item adı, item vnum'u, adet ve mob rütbelerine göre olasılık sütunları (genelde Pawn, S_Pawn, Boss, King sırasıyla, yüzde olarak). Örnek:

# Lev_min  Lev_max  ItemName        Vnum   Count  Pawn   S_Pawn  Boss   King
1         15       Mese_Parasi     1       1      30.0   40.0    60.0   100.0
20        35       Iyilesme_Iksiri 27002   1      2.5    3.0     5.0    10.0
30        50       Tas_Parcasi     30019   1      0.5    0.8     1.5    4.0

Buradaki mantık net: aynı item seviye yükseldikçe daha yüksek rütbeli moblarda daha sık düşer. Sütun sayısı ve sırası çekirdek sürümüne göre değişebildiği için kendi dosyanın başlık satırına ve mevcut örnek satırlarına bakarak kolon düzenini doğrula; uydurma bir kolon eklemek satırın tamamen yok sayılmasına yol açar. Item adlarında boşluk yerine alt çizgi kullan ve vnum'u item_proto ile birebir eşleştir.

mob_drop_item.txt: gruplar, kill ve drop tipleri

Bu dosya süslü parantezli gruplardan oluşur. Her grup bir veya birden çok mob'a bağlanır ve bir Type ile davranışını belirler. En çok kullanılan iki tip drop ve kill'dir.

drop tipinde her item'in bağımsız bir olasılığı vardır; mob ölünce her satır ayrı ayrı zar atar, yani aynı kuyruktan birden fazla item düşebilir:

Group  Kurt_Adam_Drop
{
	Mob	2090
	Type	drop
	1	72723	1	30
	2	27993	1	5
	3	30019	1	1
}

kill tipinde ise son sütun bir ağırlıktır; çekirdek bu ağırlıkları toplam üzerinden oranlayarak her ölümde tek bir item seçer (ya da hiç). Boss eşyalarını "ölüm başına bir tane" mantığıyla dağıtmak için idealdir:

Group  Patron_Kill
{
	Mob	1093
	Type	kill
	1	19	1	1000
	2	20	1	500
	3	25	1	100
}

Olasılık sütununun ölçeği çekirdekten çekirdeğe değişir: bazı dosyalarda 30 doğrudan %30 demektir, bazılarında ise daha ince bir ölçek kullanılır. Bunu varsayma; aynı dosyadaki bilinen bir item'in oranını referans alarak ölçeği kendin doğrula.

Drop oranını hesaplama ve dengeleme

Bir item'in saatte ne kadar düşeceğini kabaca şöyle hesaplarsın: etkin olasılık × saatteki öldürülen mob sayısı × global drop çarpanı. Çoğu sunucu dosyasında bir genel drop oran çarpanı vardır (çekirdek yapılandırması veya CONFIG içinden). Tablo değerlerini ayarlarken bu çarpanı her zaman hesaba kat; aksi halde "küçük" görünen bir değer canlıda piyasayı çökertir.

  • Nadir item'leri common_drop_item.txt yerine ilgili boss'a kill tipiyle bağla; böylece farm edilebilirliği kontrol altında tutarsın.
  • Para ve temel malzeme akışını common_drop_item.txt üzerinden ölçekle; tek tek mob düzenlemekten daha sürdürülebilir.
  • Aynı item'i birden çok dosyada tanımlarsan oranlar toplanır; istemeden çift tanım yapmadığından emin ol.

Değişiklikleri yükleme ve test etme

Drop tabloları çekirdek başlangıçta belleğe okunur; bu yüzden bir değişikliğin geçerli olması için genellikle game çekirdeğini yeniden başlatman gerekir (oyun içi /reload komutu quest'leri yeniler, drop dosyalarını çoğu çekirdekte yenilemez). Güvenli test akışı şöyle:

  • Değişikliği önce test sunucusunda yap, canlıda değil. Dosyayı düzenle, game'i yeniden başlat.
  • Bir GM hesabıyla hedef mob'u toplu spawnla (/m <vnum> tarzı GM komutları) ve onlarca kez öldürerek istatistiksel olarak gözlemle. Tek bir öldürme oranı doğrulamaz.
  • vnum'un gerçekten var olduğunu /i <vnum> ile item'i kendine vererek doğrula; yanlış vnum sessizce yok sayılır.
  • Çekirdeğin syslog dosyasını izle; drop dosyası parse hatası varsa başlangıçta uyarı satırı görürsün.

Test ederken oranı geçici olarak yüksek bir değere (örneğin %100) çekip mekaniğin çalıştığını doğrula, sonra gerçek dengeli değere indir. Böylece "item hiç düşmüyor" sorununun bir oran meselesi mi yoksa bir yapılandırma hatası mı olduğunu ayırt edersin.

Sık yapılan hatalar

  • Yanlış ayraç: Bu dosyalarda kolonlar TAB ile ayrılır; boşluk kullanmak satırı bozar. Editörünü görünür sekme gösterecek şekilde ayarla.
  • Geçersiz vnum: item_proto'da olmayan bir vnum hata vermez, sadece düşmez. Önce vnum'u doğrula.
  • Yeniden başlatmayı unutmak: Dosyayı kaydedip "olmuyor" demek en yaygın hata; çekirdek hâlâ eski tabloyu kullanıyordur.
  • Çarpanı unutmak: Global drop çarpanı 5x ise tablodaki %2 aslında %10'dur.

Sık Sorulan Sorular

common_drop ile mob_drop arasındaki fark nedir?

common_drop_item.txt seviye ve rütbeye göre çalışan genel bir tablodur; belirli bir mob'a bağlı değildir. mob_drop_item.txt ise tek tek mob'lara veya mob gruplarına özel droplar tanımlar ve kill/drop tipleriyle daha hassas kontrol sağlar.

Drop oranını değiştirdim ama düşmüyor, neden?

En olası üç sebep: çekirdeği yeniden başlatmadın, kolonları TAB yerine boşlukla ayırdın ya da var olmayan bir vnum girdin. syslog'u kontrol et ve item'i /i ile spawn ederek vnum'u doğrula.

Oranların doğru olduğunu nasıl test ederim?

GM hesabıyla aynı mob'u çok sayıda öldürüp düşen item sayısını say. Tek seferlik test yanıltıcıdır; istatistiksel sonuç için en az birkaç yüz öldürme gerekir. Önce oranı %100'e çekip mekaniği, sonra gerçek değerle dengeyi doğrula.

Sunucunun drop dengesini sıfırdan kurmak veya mevcut tabloları temizlemek mı istiyorsun? Metin2 sunucu kurulumu, quest ve sistem düzenlemelerinde yardıma ihtiyacın olursa benimle iletişime geç — drop tablolarını ekonomine uygun şekilde birlikte planlayabiliriz.

Bu kategorideki tüm yazılar →

Devamı için