چگونه مشکلات پچ و بسته بهروزرسانی مشتری Metin2 را حل کنیم؟
راهنمای دقیق برای مشکلات فایل های پچر، بسته، ریشه، محلی و قدیمی.
در سرورهای Metin2، تغییرات ایجاد شده در سمت کلاینت باید به درستی به دست بازیکنان برسد. هنگامی که فایلهای root، locale، uiscript، icon، item_proto، mob_proto، نقشه یا افکت بهروزرسانی میشوند، اگر بازیکن با فایلهای قدیمی وارد بازی شود، ممکن است ناسازگاریهای جدی رخ دهد.
اگر پچر کار نمی کند، اگر فایل دانلود نمی شود، اگر بازیکنان با بسته قدیمی وارد سیستم می شوند، یا اگر برخی از بازیکنان خطا دارند اما برخی دیگر این کار را نمی کنند، مشکل معمولا در سیستم به روز رسانی کلاینت است.
1. علائم مشکل پچ
- نماد آیتم های جدید برای بازیکنان ظاهر نمی شود.
- برخی از بازیکنان خاموش شدن مشتری را تجربه می کنند، برخی نه.
- تغییر رابط کاربری جدید در پخش کننده منعکس نمی شود.
- نقشه جدید برای برخی از بازیکنان باز نمی شود.
- پچر فایل ها را دانلود نمی کند یا ارور می دهد.
- حتی با وجود به روز رسانی روت، بازی با فایل قدیمی پایتون اجرا می شود.
- خطاهای فایل بسته از دست رفته در syserr مشتری ظاهر می شود.
2. کدام فایل ها باید به روز شوند؟
بسته فایل هایی که باید به روز شوند بسته به تغییرات ایجاد شده متفاوت است.
- تغییر رابط پایتون: روت پک
- ترجمه و متون رابط: بسته محلی
- نماد آیتم جدید: بسته آیکون و لیست_آیتم
- آیتم/موب جدید: آیتم مشتری_پرتو، mob_proto، فایلهای نماد/مدل
- نقشه جدید: بسته نقشه، اطلس اینفو، فایلهای زمین/مالکیت
- اثر جدید: فایل های افکت و تعاریف افکت
به روز رسانی تنها یک فایل ممکن است کافی نباشد. به عنوان مثال، هنگام افزودن یک آیتم جدید، فایل های server item_proto، client item_proto، item_list و فایل های نماد باید سازگار باشند.
3. آیا بازیکن واقعاً از مشتری فعلی استفاده می کند؟
اولین بررسی این است که آیا بازیکن یک پچ به روز دریافت کرده است یا خیر. در حالی که توسعهدهنده فایل را در کلاینت خود بهروزرسانی میبیند، بازیکنان میتوانند همچنان با فایل قدیمی وارد سیستم شوند.
مواردی که باید بررسی شود:
- آیا پچر فایل جدید را دانلود کرد؟
- آیا تاریخ فایل در پوشه Pack جاری است؟
- آیا پخش کننده پچر را رد می کند و مستقیماً با exe وارد می شود؟
- آیا می توان از پوشه مشتری قدیمی استفاده کرد؟
- آیا فایل واقعاً در سرور پچ به روز می شود؟
- آیا کش یا CDN می تواند فایل قدیمی را بدهد؟
4. Patchlist یا Version File Check
سیستم های پچر معمولاً از طریق یک لیست پچ، فایل نسخه یا لیست هش فایل کار می کنند. اگر لیست پچ با وجود بهروزرسانی فایل بهروزرسانی نشود، ممکن است پچر فایل جدید را دانلود نکند.
منطق کنترل عمومی:
- آیا فایل بسته به روز شده به لیست پچ اضافه شده است؟
- آیا اندازه فایل صحیح است؟
- آیا مقدار هش یا CRC به روز شده است؟
- آیا تعداد نسخه افزایش یافته است؟
- آیا مسیر فایل با فرمت پچر مطابقت دارد؟
زیرساخت پچر ممکن است در هر سرور متفاوت باشد. بنابراین، با در نظر گرفتن یک خط فایل کاری موجود به عنوان مثال، خط فایل جدید باید با همان فرمت ویرایش شود.
5. آیا فایل Pack واقعاً تغییر کرده است؟
گاهی اوقات فایل در پوشه منبع ویرایش می شود اما فایل بسته مجددا بسته بندی نمی شود. در این مورد، توسعه دهنده فکر می کند که تغییری ایجاد کرده است، اما مشتری همچنان از محتوای بسته قدیمی استفاده می کند.
چک لیست:
- آیا root یا locale واقعاً دوباره بسته بندی شده است؟
- آیا فایل بسته بندی شده در پوشه مشتری صحیح کپی شده است؟
- آیا فایل روی پچ سرور قدیمی است یا جدید؟
- آیا Patcher فایل دانلود شده را در محل صحیح می نویسد؟
- آیا فایل pack ایندکس فایل جدید را نشان می دهد؟
6. اگر بازیکنان از Patcher بگذرند چه اتفاقی می افتد؟
برخی از بازیکنان می توانند فایل exe کلاینت را به جای پچر مستقیماً اجرا کنند. در این صورت آپدیت دریافت نمی کنند و سعی می کنند با فایل های قدیمی وارد بازی شوند.
در نتیجه:
- موارد جدید ظاهر نمی شوند.
- نقشه های جدید باز نمی شوند.
- رابط های پایتون خطا می دهند.
- ناسازگاری پروتو کلاینت و سرور رخ می دهد.
- سیستم های خاصی برای برخی از بازیکنان کار می کنند و برای برخی دیگر نه.
در سرورهای حرفه ای، باید از رفتار بای پس پچر جلوگیری کرد یا باید کنترل نسخه مشتری انجام شود.
7. رفع مشکلات پچ با Client Syserr
در اعلان های خطا که از پخش کننده می آید، کلاینت باید باشد syserr.txt فایل باید درخواست شود
در صورت کمبود پچ، خطاهای زیر ممکن است رخ دهد:
CANNOT_FIND_PACK_FILE Failed to load image No such file or directory LoadScriptFile Error Traceback File "uiInventory.py"
اگر خطای فایل موجود در فایل syserr پخش کننده وجود داشته باشد، ممکن است پچر آن فایل را دانلود نکرده باشد یا ممکن است فایل به بسته اضافه نشده باشد.
8. چگونه می توان تست Clean Client انجام داد؟
برای درک اینکه بهروزرسانی واقعاً به درستی توزیع شده است، باید یک آزمایش کلاینت تمیز انجام شود.
- از پوشه کلاینت قدیمی استفاده نکنید.
- یک کپی مشتری تمیز دریافت کنید.
- پچر را از ابتدا اجرا کنید.
- بررسی کنید که همه فایل ها دانلود شده باشند.
- وارد بازی شوید و سیستم به روز شده را تست کنید.
- فایل مشتری syserr.txt را بررسی کنید.
اگر روی کلاینت تمیز کار می کند اما روی پلیر کار نمی کند، باید در نظر گرفت که پخش کننده پچ دریافت نکرده است یا از یک کلاینت قدیمی استفاده می کند.
9. اگر از CDN یا Cache استفاده می کنید
اگر فایلهای وصله پشت یک CDN یا حافظه پنهان هستند، ممکن است فایلهای قدیمی برای مدتی به سرویس دهی ادامه دهند. در این حالت، حتی اگر فایل در سرور پچ به روز باشد، پخش کننده می تواند فایل قدیمی را دانلود کند.
به عنوان راه حل:
- حافظه پنهان CDN باید پاک شود.
- نام فایل یا شماره نسخه قابل تغییر است.
- مقدار هش Patchlist باید به روز شود.
- اندازه فایل دانلود شده توسط پخش کننده باید بررسی شود.
اشتباهات رایج
- فراموش کردن ویرایش و بسته بندی فایل ریشه
- به روز رسانی پچ لیست یا مقدار هش نیست
- اجازه دادن به بازیکنان برای دور زدن پچر و ورود از طریق exe
- انجام ندادن تست کلاینت تمیز
- متوجه نیستید که فایل های قدیمی به دلیل کش CDN توزیع می شوند
- پرش بهروزرسانی بسته مشتری در حین بهروزرسانی سرور
سوالات متداول
برای من کار می کند اما برای بازیکنان کار نمی کند، چرا؟
ممکن است از یک کلاینت به روز شده استفاده کنید. بازیکنان ممکن است یک بسته قدیمی، ریشه قدیمی یا پچ گم شده دریافت کرده باشند.
من یک مورد جدید اضافه کردم، برخی از بازیکنان آیکون ندارند. دلیلش چیست؟
نماد جدید، item_list یا client item_proto ممکن است در کلاینت بازیکنان بهروز نباشد.
پچر فایل ها را دانلود نمی کند، چه چیزی را چک کنم؟
Patchlist، مسیر فایل، هش/CRC، شماره نسخه، دسترسی به وب سرور و حافظه پنهان CDN باید بررسی شود.
توصیه های عملیاتی
- پس از هر به روز رسانی مشتری، آزمایش کلاینت تمیز را انجام دهید.
- لیست پچ و هش فایل ها را به طور منظم بررسی کنید.
- از کنترل نسخه برای جلوگیری از عبور بازیکنان از پچر استفاده کنید.
- تغییرات ریشه، محلی و پروتو را با هم برنامه ریزی کنید.
- فایل های syserr.txt دریافت شده از پخش کننده ها پس از به روز رسانی را بررسی کنید.
این مقاله به طور ویژه برای PvPServer تهیه شده است.