Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 18:37



Ответить на тему  [ 1 сообщение ] 
 [SMD] Weaponlord - описание паролей + генератор 
Автор Сообщение
Сообщение 03 фев 2012, 01:08
Профиль

Зарегистрирован:
11 мар 2009, 19:24
Сообщения: 5
В игре присутствует система паролей, причём достаточно своеобразная - они из кнопок джойстика, т.е. букв ABC точно так же как и в Red Zone. Сначала я предполагал, что все пароли жёстко зашиты, т.к. их не очень много, но оказалось что там своя достаточно простая система. Описание под спойлером.
Длина пароля - 18 знаков, алфавит - троичный, т.е. всего 3^18=387420489 возможных паролей. Ёмкость достаточна для представления ~28 битов информации. Что же там хранится?

Битовая структура пароля:

HHHH HZPP PCCF FFFF FFUU UMMM MMDD

где
H - hash-сумма остальных битов пароля

Z - флаг для специальных cheat-паролей (в обычных паролях должен быть установлен в 0)

PPP - персонаж:

000 - Korr
001 - Zorn
010 - Zarak
011 - Talazia
100 - Jen-Tal
101 - Divada
110 - Bane
111 - запрещенное сочетание (пароль будет признан ошибочным)

СС - цвет персонажа, определяется нажатой кнопкой на экране выбора:
00 - START
01 - A/X
10 - B/Y
11 - C/Z

FFFFFFF - флаги, означающие что в бою с соответсвующим противником было выполнено Fatality. Порядок флагов такой же как и порядок персонажей, т.е. Korr, Zorn, Zarak, etc. Влияют на концовку.

UUU - неизвестное значение

MMMMM - карта боя, т.е. по сути игровой этап. Отведено аж 5 битов, но большинство комбинаций являются запрещёнными. Игра выдаёт пароли всего на 2 этапа - арену демонов и финальный бой, налицо избыточность. Кроме того коды карт отличаются для 2х персонажей - Jen-Tal и Bane.

00110 - Demons arena (для всех персонажей кроме Jen-Tal и Bane)
00111 - Demons arena (для Jen-Tal и Bane)
01000 - Final (для всех персонажей кроме Jen-Tal и Bane)
01001 - Final (для Jen-Tal и Bane)

DD - сложность игры

00 - adventurer
01 - warrior
10 - barbarian
11 - warlord

Алгоритм расчёта hash очень простой:

1) Берутся все информационные биты, следующие за хэшем порциями по 5 шт (для последней порции из 3х битов справа дописывается 00)
2) Полученные числа складываются
3) С результатом сложения делается битовая операция & с числом 0x1F (ну или то же самое что взятие по модулю 32)
4) Полученное 5 битное число и есть hash

Пример:
составим пароль для Talazia обычного цвета (т.е. при выборе кнопкой START) на финальный бой на сложности Warlord с условием что мы якобы сделали Fatality всем (в том числе и себе ^_^ и финальному боссу Zarak, которого ещё не убивали, игра это не запрещает и не проверяет пароль на абсурдность такой ситуации). Неизвестное значение примем равным 0.
Итак
Z=0
PPP=011
CC=00
FFFFFFF=1111111
UUU=000
MMMMM=01000
DD=11

HHHH H001 1001 1111 1100 0010 0011

Вычисляем hash (берём биты по 5 штук):
00110=6
01111=15
11100=28
00100=4
011(00)=12 //не забываем про добавочные 00

6+15+28+4+12=65

65 mod 32 = 1

HHHHH=00001

Т.е. наш пароль будет выглядеть в двоичном виде так:
0000 1001 1001 1111 1100 0010 0011
ну или в шестнадцатиричном:
099FC23 = 10091555 в десятичном

Для получения пароля в пригодном для игры виде осталось сделать несколько простых шагов:
1)Перевести полученное ранее число в троичную систему счисления
2)"Перевернуть", т.е. прочитать его справа налево
3)Заменить все 0 на A, 1 на B, 2 на C
3)При необходимости дописать в конец столько А, сколько необходимо для получения 18 символьного пароля

10091555 в десятичной системе это 200222201000022 в троичной (для перевода можно воспользоваться например онлайн-сервисом). "Перевернём" число, получим: 220000102222002.
Заменяем цифры на буквы: CCA AAA BAC CCC AAC. Осталось дописать ААА в конец и получаем наш пароль:
CCA AAA BAC CCC AAC AAA

Теперь касательно генерации специальных cheat паролей:
1)Должен быть установлен в 1 флаг Z
2)Все остальные поля (кроме MMMMM) должны быть нулями
3)Поле MMMMM допускает значения (фактически означает номер активируемого чита от 1 до 10 включительно):

00001 - много энергии у обоих персонажей
00010 - режим нокдаунов (черепки над головой а ля звёздочки и невозможность управлять персонажем, получившим солидную порцию урона)
00011 - огонь на заставке (дождитесь появления слова Weaponlord)
00100 - пауза без затемнения экрана и слова pause (удобно для скриншотов)
00101 - особый цвет персонажа для игрока 1 (как в заставках)
00110 - особый цвет персонажа для игрока 2 (как в заставках)
00111 - демо-режим (противнику делают 25% хп и игру проходит компьютер)
01000 - демо-режим 2 (просто бои компьютер против компьютера)
01001 - возможность выбрать Zarak в режиме story
01010 - особые благодарности от разработчиков в финальных титрах (километры забавных текстов :))


Кроме пароля на выбор Zarak, который игра выдаёт порциями по 3 символа при прохождении на максимальной сложности каждым из персонажей, остальные мне на просторах интернета не попадались (гугл молчит), т.е. эксклюзив:

CAC BBB CAA ACC BCA AAA - много энергии у обоих игроков
BAA CCB ACA ACA ACA BAB - режим нокдаунов (черепки над головой а ля звёздочки и невозможность управлять персонажем, получившим солидную порцию урона)
ACA CBB BCA AAC CBC AAA - огонь на заставке (дождитесь появления слова Weaponlord)
CBB CCB CAB AAA BBC BAB - пауза без затемнения экрана и слова pause (удобно для скриншотов)
BAC CBB ABB ABB ABB BAA - особый цвет персонажа для игрока 1 (как в заставках)
AAA AAC BCB ABC BAB CAB - особый цвет персонажа для игрока 2 (как в заставках)
CBA ACB CCB ACA BAA CAA - демо-режим (противнику делают 25% хп и игру проходит компьютер)
BBB AAC ABC ACB CCC CAB - демо-режим 2 (просто бои комп vs комп)
AAC ACB BBC AAA CCB CAA - возможность выбрать Zarak в режиме story
CCC AAC CCC AAB ACB ABB - особые благодарности от разработчиков в финальных титрах (километры забавных текстов :))

Повторный ввод пароля отменяет его действие. Пароли переключают однобайтовые флажки начиная с адреса FF02ED для первого чита и т.д. Т.е ввод 1го пароля эквивалентен коду FF02ED:01, 2го пароля FF02EE:01 и т.д.

Для желающих поиграться с битами техническая версия генератора паролей (автоматом вычисляет правильный hash, позволяет задать любые сочетания информационных битов, потому правильность полученного пароля на вашей совести).
Для всех остальных - обычная версия, со стандартным интерфейсом.

Если кто поймёт назначение неизвестного значения - пишите. Про влияние Fatality и сложности на концовку уже всё расписано на gamefaq, повторяться особого смысла не вижу.


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ 1 сообщение ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB