Модифікація ігрового клієнта - база знань - chaos online

Backend гри - тема дуже обширна і підходити до неї слід вдумливо, оскільки наслідки протилежного чреваті. Будучи одним з небагатьох, хто хоч в якійсь мірі розбирається в модифікації ігрового клієнта, я вирішив поділитися тут інформацією на дану тему.

На початку невеликий FAQ по темі (поповнюватиметься у міру надходження питань):

В: Чого слід очікувати від модифікованого клієнта?
Про: У першу чергу це більш глибоке розуміння ігрової механіки в цілому і багато іншої цікавої інформації, в другу чергу окремо взяті модифікації дозволяють зробити гру більш комфортною.

В: Чого в даному Гайд не буде?
Про: Точно не буде експлойтів, що дозволяють отримати перевагу перед іншими гравцями зарахунок недосконалості ігрової механіки (не слід плутати з модифікаціями що підвищують зручність, такими, як, наприклад, кастомизация інтерфейсу). Все інше цілком може бути, звичайно, якщо дійдуть руки.

В: Чи можуть мене забанити за використання даних модов?
Про: Теоретично - мають повне право, оскільки призначеним для користувача угодою це заборонено. На практиці якщо все робити правильно, то дані модифікації НЕ палятся і відстежити їх практично неможливо.

В: Чи будуть дані модифікації працювати на інших серверах і версіях гри?
Про: За майбутні версії поручитися не можу, але на даний момент на американському і китайському серверах все відмінно працює.

Вступ. Структура ігрових файлів.

Зайшовши в папку з ігровим клієнтом, ми бачимо autorun (fxlaunch.exe) і кілька папок з ресурсами гри, коротко пройдемося по ним:

В папку patch викачуються ігрові патчі і, що примітно, зберігаються там до кінця часів, якщо раптом вийде величезний патч і потрібно буде звільнити місце на диску, можна буде сміливо дану папку видалити. Самі ж патчі вдають із себе точно такі ж архіви, як і все інше, але про це пізніше.

Що саме містить папка SnailRes я не зрозумів, але ризикну припустити, що це вбудований в апдейтер архіватор. У планах з ним погратися, поки що особливо не звертав на нього уваги.

Я доктор ТіБіБо, а що у нас всередині? Ну-ка # 33;

Викачуємо згадану вище програму QuickBMS, разархивируем її в зручне місце, після чого створюємо скрипт для вилучення ігрових файлів, назвавши його, наприклад, aow.bms.
Код скрипта:

Отже, файли успішно розархівовані і готові до зустрічі наших пустотливих ручок. Що ж цікавого ми можемо зробити відносно швидко?

Кумедний такий файлик, що дозволяє, наприклад, розблокувати для використання в чаті заборонені символи.

Замість "skin.package" підставляємо будь-який архів з гри.
Код скрипта "unaow.bms":

GoTo 10
Get FileCount Long

For I = 1 To FileCount
SavePos TOC
Get DataSize Short
Get FileOffs Long
Get FileZero Long
Get FileSize Long
Get PackSize Long
Math DataSize - = 27
Math TOC + = 27
GoTo TOC
GetDString FileName DataSize

Даний скрипт дозволяє, запаковувати файли назад.
Ось текст для батника:
quickbms_4gb_files.exe -w -r твой_скріпт_через_которий_распаковивал.bms Орігінальний_архів_із_ігри E: # 092; 1 234 # 092; (место_куда_сохранять)

Так виглядає, готовий батник тільки для іншої гри
quickbms_4gb_files.exe -w -r 1.bms ENG.cfs E: # 092; 1234 # 092;

Всі дії повинні відбуватися в одній папці
В папці ОБОВ'ЯЗКОВО повинні знаходиться файли:
1.quickbms_4gb_files
2.Твой скрипт script.bms
3.reimport.exe
4.орігінальний ігровий архів (той який ти розпаковував)
5.отредактірованние файли з цього архіву. Які потрібно засунути назад.

Запаковують на здоров'я =))

Господа, а де ви знайшли в правилах \ договорі \ угоду рядок про заборону модифікації клієнта?) Там тільки про підміну пакетів мова є)

Пиріг-сан, будь-яка модифікація початкового коду, так само як і реверсінг разлічнйо мірою є порушенням початкової цілісності поставки а значить може потенційно спричинити доступ до гри з привілеями вище призначених для користувача.

переводячи на російську, саппорт тобі відповість-сам дурак.После забанити і забуде).
Одна справа грати у юридично чесної компаніі.Другое справу у такий ось)

Взагалі так, але в тих текстах про які я запитав у російської локалізації про модифікацію клієнта не слова)

Як я зрозумів lua файли це скрипти запуску будь-яких подій після якихось дій =)

Зокрема, але не обмежуються цим. По суті вони відповідають практично за всі дії на клієнтської частини гри, від подгрузки тих чи інших ресурсів до відсилання дій гравця на сервер.

Зокрема, але не обмежуються цим. По суті вони відповідають практично за всі дії на клієнтської частини гри, від подгрузки тих чи інших ресурсів до відсилання дій гравця на сервер.

Обмеження на кількість відображуваних персів теж там є? У інішніках щось нічого схожого не знайшов.

Обмеження на кількість відображуваних персів теж там є? У інішніках щось нічого схожого не знайшов.

У інішніках теж шукав і теж нічого не знайшов, в Луа цілком може бути, ну а може бути прописано прямо в движок. Знайти б робочий декомпілятор.