PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Metin2 Quest Hataları Nasıl Çözülür? Quest Reload ve Derleme Rehberi

Yazdır

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.

Basit anlatım: Quest dosyası, NPC’ye ne yapacağını söyleyen talimat dosyasıdır. Talimat yanlışsa NPC doğru cevap veremez.

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
Önemli: Büyük sunucularda tüm questleri gereksiz yere derlemek riskli olabilir. Sadece düzenlenen quest dosyasını derlemek daha kontrollüdür.

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
end

Burada 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.

Dikkat: Canlı sunucuda toplu quest flag silme işlemi dikkatli yapılmalıdır. Yanlış işlem oyuncuların görev, event veya ödül kayıtlarını bozabilir.

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.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner