Metin2 Quest Hataları Nasıl Çözülür?
Quest reload, NPC tepki vermeme, fonksiyon hataları ve quest derleme sorunları için rehber.
Metin2 sunucularda görev, NPC konuşmaları, event sistemleri, biyolog, ışınlanma, market, boss takip, günlük ödül ve birçok özel sistem quest dosyaları üzerinden çalışır. Bu yüzden quest tarafında yapılan küçük bir hata bile NPC’nin tepki vermemesine, eventin başlamamasına veya channel syserr dosyasının sürekli hata üretmesine neden olabilir.
Quest hatalarında en büyük problem, hatanın çoğu zaman “NPC çalışmıyor” gibi genel görünmesidir. Fakat gerçek sebep yanlış vnum, eksik fonksiyon, bozuk syntax, hatalı state yapısı veya questin hiç derlenmemiş olması olabilir.
1. Quest Dosyaları Nerede Bulunur?
Quest dosyalarının yolu sunucu altyapısına göre değişebilir. Sık kullanılan dizinler şunlardır:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Quest dosyaları genellikle .quest uzantılıdır. Derleme sonrası oluşan dosyalar object klasörü altında tutulur.
2. Quest Hatasını Anlamak İçin İlk Kontrol
Bir quest çalışmıyorsa önce ilgili channel syserr dosyasına bakılmalıdır.
cd /usr/game/channel1/core1 tail -n 100 syserr
Quest reload yaptıktan sonra oluşan yeni hataları canlı izlemek için:
tail -f syserr
Sık görülen quest hata örnekleri:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3. Quest Derleme Nasıl Yapılır?
Yeni bir quest dosyası eklediğinizde sadece dosyayı klasöre atmak yeterli değildir. Questin derlenmesi gerekir.
Önce quest dizinine girin:
cd /usr/game/share/locale/turkey/quest
Tek quest derlemek için örnek:
./qc quest_adi.quest
Bazı sistemlerde qc yolu farklı olabilir:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
Tüm questleri derlemek için kullanılan script adı altyapıya göre değişir. Örnek:
sh make.sh
4. Quest Reload Nasıl Yapılır?
Quest derlendikten sonra oyun içinde GM karakterle reload yapılabilir.
/reload q
Bazı durumlarda sadece reload yeterli olmaz. Özellikle state yapısı, quest flag veya başlangıç koşulları değiştiyse karaktere yeniden giriş yaptırmak veya channel restart gerekebilir.
Genel sıra şu şekilde olmalıdır:
- Quest dosyasını düzenle
- Syntax kontrolü yap
- Quest dosyasını qc ile derle
- Oyun içinde /reload q uygula
- Syserr kontrol et
- NPC veya event davranışını test et
5. NPC Quest Çalışmıyor Sorunu
NPC’ye tıklayınca hiçbir şey olmuyorsa aşağıdaki noktalar kontrol edilmelidir:
- Questte kullanılan NPC vnum doğru mu?
- NPC server tarafında gerçekten mapte spawn oluyor mu?
- Quest derlendi mi?
- /reload q sonrası syserr oluştu mu?
- Quest state başlangıcı doğru mu?
- Quest içinde yanlış koşul nedeniyle kod çalışmadan çıkıyor mu?
Örnek NPC trigger yapısı:
quest ornek_npc begin
state start begin
when 20011.chat."Ornek Menu" begin
say_title("Ornek NPC")
say("Bu bir test mesajidir.")
end
end
endBurada 20011 NPC vnum değeridir. NPC vnum yanlışsa quest çalışmaz.
6. no such quest function Hatası
Syserr içinde no such quest function görülüyorsa quest içinde kullanılan fonksiyon sunucuda tanımlı değildir.
Sebepler:
- Quest başka bir altyapıdan alınmıştır.
- Source tarafında ilgili quest fonksiyonu ekli değildir.
- questlib.lua içinde olması gereken yardımcı fonksiyon eksiktir.
- Fonksiyon adı yanlış yazılmıştır.
Bu durumda çözüm, fonksiyonun gerçekten sunucuda var olup olmadığını kontrol etmektir. Başka files’dan alınan questler doğrudan uyumlu kabul edilmemelidir.
7. Quest Syntax Hataları
Quest dosyalarında en sık yapılan yazım hataları şunlardır:
- end eksik veya fazla kullanılması
- Tırnak işaretinin kapatılmaması
- Yanlış when koşulu yazılması
- Türkçe karakter veya bozuk encoding kullanılması
- Başka sistemden alınan fonksiyonların uyarlanmadan kullanılması
Örnek hatalı yapı:
say("Merhaba oyuncu)Doğru yapı:
say("Merhaba oyuncu")8. Quest Flag Problemleri
Bazı questler karakter veya hesap üzerinde flag tutar. Yanlış flag değeri nedeniyle quest başlamıyor veya tamamlanmış gibi görünebilir.
Örneğin bir görev daha önce tamamlandıysa NPC tekrar menü göstermeyebilir. Bu durumda ilgili quest flag kontrol edilmelidir.
Sık Yapılan Hatalar
- Quest dosyasını klasöre atıp derlemeyi unutmak
- Derleme hatası olduğu halde /reload q yapmak
- NPC vnum değerini yanlış yazmak
- Başka files’dan alınan questleri uyarlamadan kullanmak
- Quest flag kontrolü yapmadan NPC çalışmıyor sanmak
- Encoding bozulduğu için questin görünürde doğru ama çalışmaz hale gelmesi
FAQ
/reload q yaptım ama quest çalışmadı, neden?
Quest hiç derlenmemiş olabilir, derleme sırasında hata vermiş olabilir veya state/flag koşulu nedeniyle oyuncuda görünmüyor olabilir.
NPC’ye tıklıyorum menü gelmiyor, sorun NPC’de mi?
Her zaman değil. NPC vnum doğru olsa bile quest derlenmemiş, hatalı yazılmış veya koşuldan dolayı çalışmıyor olabilir.
Başka sunucudan aldığım quest neden hata veriyor?
Çünkü kullanılan fonksiyonlar, questlib yapısı veya source destekleri sizin altyapınızda olmayabilir.
Güvenlik ve Operasyon Önerileri
- Quest düzenlemeden önce dosyanın yedeğini alın.
- Canlı sunucuda büyük quest değişikliklerini düşük oyuncu saatlerinde uygulayın.
- Her quest derlemesinden sonra syserr kontrolü yapın.
- Türkçe karakter ve encoding bozulmalarına dikkat edin.
- Oyuncu verisiyle ilişkili quest flag işlemlerinde toplu silme yapmadan önce yedek alın.
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.