Як вирішити помилки квесту Metin2?
Посібник щодо перезавантаження квестів, невідповідності NPC, функціональних помилок і проблем компіляції квестів.
Квести, розмови NPC, системи подій, біолог, телепортація, ринок, стеження за босом, щоденні винагороди та багато спеціальних систем на серверах Metin2. квест Він працює через файли. Таким чином, навіть невелика помилка, зроблена на стороні квесту, може призвести до того, що NPC не відреагує, подія не розпочнеться або файл каналу syserr постійно створюватиме помилки.
Найбільша проблема з помилками квестів полягає в тому, що помилка часто здається загальною, наприклад «NPC не працює». Але справжньою причиною може бути неправильний vnum, відсутня функція, несправний синтаксис, несправна структура стану або квест взагалі не скомпільовано.
1. Де знайти файли квестів?
Шлях файлів Quest може відрізнятися залежно від інфраструктури сервера. Найпоширеніші каталоги:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Файли квестів зазвичай .квест з розширенням. Файли, створені після компіляції об'єкт Зберігається під папкою.
2. Спочатку перевірте, щоб зрозуміти помилку квесту
Якщо квест не працює, спершу слід перевірити відповідний файл syserr каналу.
cd /usr/game/channel1/core1 tail -n 100 syserr
Щоб переглянути реальні помилки, які виникають після перезавантаження квесту:
tail -f syserr
Приклади поширених помилок у квесті:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3. Як скомпілювати квест?
Коли ви додаєте новий файл квесту, недостатньо просто закинути файл у папку. Квест потрібно скласти.
Спочатку увійдіть в каталог квестів:
cd /usr/game/share/locale/turkey/quest
Приклад складання одиночного квесту:
./qc quest_adi.quest
Шлях qc може відрізнятися в деяких системах:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
Назва сценарію, яка використовується для компіляції всіх квестів, залежить від інфраструктури. приклад:
sh make.sh
4. Як перезавантажити квест?
Після того, як квест складено, його можна перезавантажити в грі за допомогою персонажа GM.
/reload q
У деяких випадках просто перезавантаження недостатньо. Особливо якщо структура стану, прапор квесту або початкові умови змінилися, може знадобитися повторно ввести персонажа або перезапустити канал.
Загальний порядок повинен бути таким:
- Редагувати файл квесту
- Перевірте синтаксис
- Скомпілюйте файл Quest за допомогою qc
- Виконайте /reload q у грі
- Перевірте Syserr
- Перевірте поведінку NPC або події
5. NPC Quest не працює Проблема
Якщо нічого не відбувається, коли ви натискаєте на NPC, слід перевірити наступні пункти:
- Чи правильний NPC vnum, використаний у квесті?
- Чи справді NPC з’являються на карті на стороні сервера?
- Квест складено?
- Чи виник syserr після /reload q?
- Чи правильний стан початку квесту?
- Код перестає виконуватися через неправильну умову в квесті?
Приклад тригерної структури NPC:
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тут 20011 Значення vnum NPC. Якщо NPC vnum неправильний, квест не працюватиме.
6. немає такої помилки функції квесту
в Сисеррі немає такої функції квесту Якщо його видно, функція, яка використовується в квесті, не визначена на сервері.
Причини:
- Квест взято з іншої інфраструктури.
- Відповідна функція квесту не додається на стороні джерела.
- Допоміжна функція, яка повинна бути в questlib.lua, відсутня.
- Назва функції написана з помилкою.
У цьому випадку рішення полягає в тому, щоб перевірити, чи дійсно функція існує на сервері. Квести, взяті з інших файлів, не слід вважати безпосередньо сумісними.
7. Синтаксичні помилки квесту
Найпоширенішими помилками у файлах Quest є:
- кінець недостатнє або надмірне використання
- Не закриваючи лапки
- Неправильно, коли написано умову
- Використання турецьких символів або неправильне кодування
- Використання функцій, взятих з іншої системи без адаптації
Приклад несправної структури:
say("Merhaba oyuncu)Правильна структура:
say("Merhaba oyuncu")8. Проблеми з прапорцями квесту
Деякі квести зберігають прапор на персонажі або обліковому записі. Квест не починається або може здатися завершеним через неправильне значення прапора.
Наприклад, якщо квест уже виконано, NPC може більше не показувати меню. У цьому випадку потрібно відзначити відповідний прапорець квесту.
Поширені помилки
- Ви забули помістити файл Quest у папку та скомпілювати його
- Виконання /reload q, незважаючи на помилку компіляції
- Неправильне значення NPC vnum
- Використання квестів, взятих з інших файлів без їх адаптації
- Думаючи, що NPC не працює, не перевіривши прапорець квесту
- Квест здається правильним, але не працює, оскільки кодування пошкоджено.
FAQ
Я зробив /reload q, але квест не спрацював, чому?
Можливо, квест взагалі не було скомпільовано, можливо, виникла помилка під час компіляції, або він може бути невидимим у програвачі через умову стану/прапора.
Я натискаю на NPC, а меню не з’являється. Проблема в NPC?
Не завжди. Навіть якщо vnum NPC правильний, квест може бути не скомпільований, написаний неправильно або запущений через певну умову.
Чому квест, який я отримав з іншого сервера, видає помилку?
Оскільки використовувані функції, структура questlib або підтримка вихідного коду можуть бути недоступні у вашій інфраструктурі.
Рекомендації з техніки безпеки та експлуатації
- Зробіть резервну копію файлу перед редагуванням Quest.
- Внесіть основні зміни в квест на живому сервері під час малої кількості гравців.
- Перевіряйте syserr після кожної компіляції квесту.
- Зверніть увагу на турецькі символи та спотворення кодування.
- Зробіть резервну копію, перш ніж масово видаляти операції прапорців квесту, пов’язані з даними гравців.
Ця стаття спеціально підготовлена для PvPServer.