Metin2 Quest səhvlərini necə həll etmək olar?
Tapşırıqların yenidən yüklənməsi, NPC-nin cavabsızlığı, funksiya xətaları və axtarış tərtibi problemləri üçün bələdçi.
Metin2 serverlərində qonaqlar, NPC söhbətləri, hadisə sistemləri, bioloq, teleportasiya, market, patron izləmə, gündəlik mükafatlar və bir çox xüsusi sistemlər. axtarış Fayllar vasitəsilə işləyir. Buna görə də, axtarış tərəfində edilən kiçik bir səhv belə NPC-nin reaksiya verməməsinə, hadisənin başlamamasına və ya kanal syserr faylının davamlı olaraq səhvlər çıxarmasına səbəb ola bilər.
Axtarış səhvləri ilə bağlı ən böyük problem, səhvin çox vaxt “NPC işləmir” kimi ümumi görünməsidir. Ancaq əsl səbəb səhv vnum, çatışmayan funksiya, pozulmuş sintaksis, səhv dövlət strukturu və ya axtarışın ümumiyyətlə tərtib edilməməsi ola bilər.
1. Quest fayllarını haradan tapmaq olar?
Quest fayllarının yolu server infrastrukturundan asılı olaraq dəyişə bilər. Ən çox istifadə olunan kataloqlar:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Quest faylları adətən olur .axtarış uzadılması ilə. Kompilyasiyadan sonra yaradılmış fayllar obyekt Qovluğun altında saxlanılır.
2. Quest səhvini anlamaq üçün əvvəlcə yoxlayın
Axtarış işləmirsə, əvvəlcə müvafiq kanal syserr faylı yoxlanılmalıdır.
cd /usr/game/channel1/core1 tail -n 100 syserr
Axtarışı yenidən yüklədikdən sonra baş verən canlı xətaları izləmək üçün:
tail -f syserr
Ümumi axtarış xətası nümunələri:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3. Questi necə tərtib etmək olar?
Yeni bir axtarış faylı əlavə edərkən, faylı sadəcə qovluğa atmaq kifayət deyil. Axtarış tərtib edilməlidir.
Əvvəlcə axtarış qovluğuna daxil olun:
cd /usr/game/share/locale/turkey/quest
Tək bir tapşırığın tərtib edilməsinə nümunə:
./qc quest_adi.quest
Qc yolu bəzi sistemlərdə fərqli ola bilər:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
Bütün tapşırıqları tərtib etmək üçün istifadə edilən skript adı infrastrukturdan asılı olaraq dəyişir. Misal:
sh make.sh
4. Questi necə yenidən yükləmək olar?
Axtarış tərtib edildikdən sonra onu GM xarakteri ilə oyunda yenidən yükləmək olar.
/reload q
Bəzi hallarda, sadəcə yenidən yükləmə kifayət deyil. Xüsusilə dövlət quruluşu, axtarış bayrağı və ya başlanğıc şərtləri dəyişibsə, xarakterə yenidən daxil olmaq və ya kanalı yenidən başlatmaq lazım ola bilər.
Ümumi qayda aşağıdakı kimi olmalıdır:
- Axtarış faylını redaktə edin
- Sintaksisi yoxlayın
- Quest faylını qc ilə tərtib edin
- Oyunda q yerinə yetirin/yenidən yükləyin
- Syserr-i yoxlayın
- NPC və ya hadisə davranışını sınayın
5. NPC Quest İşləmir Problem
NPC üzərinə kliklədiyiniz zaman heç nə baş verməzsə, aşağıdakı məqamlar yoxlanılmalıdır:
- Axtarışda istifadə edilən NPC vnum düzgündürmü?
- NPC-lər həqiqətən də server tərəfindəki xəritədə yaranırmı?
- Quest tərtib edilib?
- /reload q-dan sonra syserr baş verdi?
- Axtarış vəziyyətinin başlanğıcı düzgündürmü?
- Quest-də səhv vəziyyətə görə kod icradan çıxır?
NPC trigger quruluşunun nümunəsi:
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 dəyəri. NPC vnum səhvdirsə, axtarış işləməyəcək.
6. belə axtarış funksiyası xətası yoxdur
Syserr-də belə bir axtarış funksiyası yoxdur Görünürsə, axtarışda istifadə olunan funksiya serverdə müəyyən edilməyib.
Səbəblər:
- Quest başqa bir infrastrukturdan götürülüb.
- Müvafiq axtarış funksiyası Mənbə tərəfində əlavə edilmir.
- Questlib.lua-da olması lazım olan köməkçi funksiya yoxdur.
- Funksiya adı səhv yazılıb.
Bu halda həll yolu funksiyanın həqiqətən serverdə olub-olmadığını yoxlamaqdır. Digər fayllardan götürülmüş tapşırıqlar birbaşa uyğun hesab edilməməlidir.
7. Quest Sintaksis Səhvləri
Quest fayllarında ən çox rast gəlinən yazı səhvləri bunlardır:
- son az və ya həddindən artıq istifadə
- Dırnaqları bağlamaq
- Şərt yazıldığında səhvdir
- Türk simvollarından və ya səhv kodlaşdırmadan istifadə
- Uyğunlaşmadan başqa sistemdən götürülmüş funksiyalardan istifadə
Qüsurlu quruluş nümunəsi:
say("Merhaba oyuncu)Düzgün quruluş:
say("Merhaba oyuncu")8. Quest Bayraq Problemləri
Bəzi tapşırıqlar xarakter və ya hesabda bir bayraq saxlayır. Axtarış başlamır və ya səhv bayraq dəyərinə görə tamamlanmış kimi görünə bilər.
Məsələn, əgər tapşırıq artıq tamamlanıbsa, NPC menyunu yenidən göstərməyə bilər. Bu halda, müvafiq axtarış bayrağı yoxlanılmalıdır.
Ümumi Səhvlər
- Quest faylını qovluğa qoymağı və onu tərtib etməyi unudub
- Kompilyasiya xətası olsa da /reload q yerinə yetirilir
- Səhv NPC vnum dəyəri
- Digər fayllardan götürülmüş tapşırıqları uyğunlaşdırmadan istifadə etmək
- NPC-nin axtarış bayrağını yoxlamadan işləmədiyini düşünmək
- Axtarış düzgün görünür, lakin kodlaşdırma pozulduğu üçün işləmir.
Tez-tez verilən suallar
/reload q etdim, lakin axtarış işləmədi, niyə?
Quest ümumiyyətlə tərtib edilməmiş ola bilər, tərtib zamanı xəta vermiş ola bilər və ya dövlət/bayraq vəziyyətinə görə oyunçuda görünməyə bilər.
NPC üzərinə klikləyirəm və menyu görünmür. Problem NPC ilə bağlıdır?
Həmişə deyil. NPC vnum düzgün olsa belə, kvest tərtib olunmaya, səhv yazıla və ya bir şərtə görə işləməyə bilər.
Başqa serverdən aldığım sorğu niyə xəta verir?
İstifadə olunan funksiyalar, questlib strukturu və ya mənbə dəstəkləri infrastrukturunuzda mövcud olmaya bilər.
Təhlükəsizlik və Əməliyyatlar üzrə Tövsiyələr
- Quest-i redaktə etməzdən əvvəl faylın ehtiyat nüsxəsini çıxarın.
- Aşağı oyunçu saatlarında canlı serverdə əsas axtarış dəyişikliklərini həyata keçirin.
- Hər axtarış tərtibindən sonra syserr-i yoxlayın.
- Türk xarakterinə və kodlaşdırma təhriflərinə diqqət yetirin.
- Oyunçu məlumatları ilə bağlı axtarış bayrağı əməliyyatlarını toplu silməzdən əvvəl ehtiyat nüsxəsini çıxarın.
Bu məqalə xüsusi olaraq PvPServer üçün hazırlanmışdır.