Як вирішити проблеми з оновленням пакетів і виправлення клієнта Metin2?
Детальний посібник щодо проблем із патчером, пакетом, коренем, локалізацією та старим файлом клієнта.
На серверах Metin2 зміни, зроблені на стороні клієнта, мають належним чином досягати гравців. Коли оновлено root, locale, uiscript, icon, item_proto, mob_proto, map або файл ефекту, можуть виникнути серйозні несумісності, якщо гравець увійде в гру зі старими файлами.
Якщо патчер не працює, якщо файл не завантажується, якщо гравці входять зі старим пакетом або якщо деякі гравці мають помилки, а інші ні, проблема зазвичай полягає в системі оновлення клієнта.
1. Симптоми проблеми з латками
- Значки нових предметів не відображаються для гравців.
- Деякі гравці стикаються з припиненням роботи клієнта, інші – ні.
- Нова зміна інтерфейсу не відображається в програвачі.
- Нова карта не відкривається для деяких гравців.
- Patcher не завантажує файли або видає помилку.
- Незважаючи на те, що корінь оновлено, гра працює зі старим файлом Python.
- Помилки про відсутність пакетного файлу з’являються в клієнті syserr.
2. Які файли слід оновити?
Файли пакетів, які потрібно оновити, відрізняються залежно від внесених змін.
- Зміна інтерфейсу Python: rootpack
- Тексти перекладу та інтерфейсу: локальна упаковка
- Значок нового елемента: пакет значків і item_list
- Новий товар/моб: клієнт item_proto, mob_proto, файли значків/моделей
- Нова карта: пакет карт, інформація про атлас, файли ландшафту/власності
- Новий ефект: файли ефектів і визначення ефектів
Оновлення лише одного файлу може бути недостатньо. Наприклад, під час додавання нового елемента обидва файли item_proto сервера, item_proto клієнта, item_list і піктограми мають бути сумісними.
3. Чи дійсно гравець використовує поточний клієнт?
Перша перевірка полягає в тому, чи отримав гравець оновлений патч. Поки розробник бачить файл як оновлений у своєму клієнті, гравці можуть продовжувати вхід зі старим файлом.
Що потрібно перевірити:
- Patcher завантажив новий файл?
- Чи поточна дата файлу в папці Pack?
- Гравець пропускає патчер і входить безпосередньо з exe?
- Чи можна використати стару папку клієнта?
- Чи справді файл оновлюється на сервері виправлень?
- Чи може кеш або CDN надати старий файл?
4. Список виправлень або перевірка файлу версії
Системи патчерів зазвичай працюють через список виправлень, файл версії або хеш-список файлу. Якщо список виправлень не оновлено, навіть якщо файл оновлено, програма виправлення може не завантажити новий файл.
Загальна логіка управління:
- Чи додано оновлений файл пакета до списку виправлень?
- Чи правильний розмір файлу?
- Чи було оновлено хеш або значення CRC?
- Чи було збільшено номер версії?
- Чи відповідає шлях файлу формату патчера?
Інфраструктура Patcher може відрізнятися на кожному сервері. Тому, беручи за приклад існуючий робочий рядок файлу, новий рядок файлу слід редагувати в тому самому форматі.
5. Чи справді файл пакета змінився?
Іноді файл редагується у вихідній папці, але файл пакета не перепаковується. У цьому випадку розробник вважає, що він вніс зміни, але клієнт все ще використовує старий вміст пакета.
Контрольний список:
- Чи справді корінь або локаль було перепаковано?
- Чи запакований файл скопійовано до правильної папки клієнта?
- Файл на сервері виправлень старий чи новий?
- Чи записує Patcher завантажений файл у правильне місце?
- Чи відображає файл індексу пакета новий файл?
6. Що станеться, якщо гравці пропустять патчер?
Деякі гравці можуть запускати exe-файл клієнта безпосередньо замість патчера. У цьому випадку вони не отримують оновлення і намагаються зайти в гру зі старими файлами.
В результаті:
- Нові елементи не з'являються.
- Нові карти не відкриваються.
- Інтерфейси Python видають помилки.
- Виникає несумісність протоколу клієнт-сервер.
- Деякі системи працюють для одних гравців, а для інших – ні.
На професійних серверах слід запобігти обходу патчера або виконати контроль версій клієнта.
7. Виявлення проблем з виправленнями за допомогою клієнта Syserr
У повідомленнях про помилки, що надходять від програвача, клієнт повинен бути syserr.txt слід запросити файл.
У разі відсутності патча можуть виникнути такі помилки:
CANNOT_FIND_PACK_FILE Failed to load image No such file or directory LoadScriptFile Error Traceback File "uiInventory.py"
Якщо у файлі syserr програвача є помилка про відсутність файлу, можливо, патчер не завантажив цей файл або файл не було додано до пакета.
8. Як виконати чисте тестування клієнта?
Необхідно виконати чистий тест клієнта, щоб зрозуміти, що оновлення дійсно розповсюджується правильно.
- Не використовуйте стару папку клієнта.
- Отримайте чисту клієнтську копію.
- Запустіть патчер з нуля.
- Перевірте, чи всі файли завантажено.
- Увійдіть в гру і протестуйте оновлену систему.
- Перевірте клієнтський файл syserr.txt.
Якщо він працює на чистому клієнті, але не працює на програвачі, слід вважати, що програвач не отримав патч або використовує старий клієнт.
9. Якщо ви використовуєте CDN або Cache
Якщо файли виправлень знаходяться за CDN або кешем, старі файли можуть продовжувати обслуговуватися деякий час. У цьому випадку, навіть якщо файл оновлений на сервері виправлень, гравець може завантажити старий файл.
Як рішення:
- Кеш CDN необхідно очистити.
- Ім'я файлу або номер версії можна змінити.
- Необхідно оновити хеш-значення списку виправлень.
- Необхідно перевірити розмір файлу, який завантажує плеєр.
Поширені помилки
- Ви забули відредагувати та запакувати кореневий файл
- Не оновлюється список виправлень або хеш-значення
- Дозволяє гравцям обходити патчер і входити через exe
- Не виконується чисте тестування клієнта
- Не розуміючи, що старі файли поширюються через кеш CDN
- Пропуск оновлення клієнтського пакета під час оновлення сервера
FAQ
Це працює для мене, але це не працює для гравців, чому?
Можливо, ви використовуєте оновлений клієнт. Можливо, гравці отримали старий пакет, старий рут або відсутній патч.
Я додав новий пункт, у деяких гравців немає значка. В чому причина?
Нова піктограма, item_list або клієнт item_proto можуть бути неактуальними в клієнті гравців.
Patcher не завантажує файли, що перевірити?
Необхідно перевірити список виправлень, шлях до файлу, хеш/CRC, номер версії, доступ до веб-сервера та кеш CDN.
Рекомендації по експлуатації
- Виконуйте чисте тестування клієнта після кожного оновлення клієнта.
- Регулярно перевіряйте список виправлень і хеші файлів.
- Використовуйте контроль версій, щоб гравці не могли обійти патчер.
- Плануйте зміни кореня, локалі та прото разом.
- Перегляньте файли syserr.txt, отримані від гравців після оновлення.
Ця стаття спеціально підготовлена для PvPServer.