четверг, 25 октября 2018 г.

как создать на retroachievements ачивку (трофей) ?

Вы задались вопросом как создать ачивку на retroachievements ?
Тогда
-----

Добро пожаловать в мир создания достижений! Убедитесь, что вы скачали эмулятор ] сначала и скачали эмулятор и подписались на учетную запись, чтобы вы могли войти, используя эмулятор.
Я буду использовать RAGens для демонстрации, и игра Соник Ёжик. Вы можете использовать все, что угодно, но я буду обращаться к RAGens как к эмулятору, который я использую; то же самое относится и к другим эмуляторам.
Для начала, запустите исполняемый файл RAGens, и введите логин при запросе. Если у вас есть какие-либо проблемы со входом в систему, пожалуйста, пришлите мне сообщение на этих форумах, и я свяжусь с вами как можно скорее. Затем откройте Файл... Откройте и выберите любой диск, для которого вы хотели бы найти достижения.
Теперь вы должны иметь ваше главное окно с запущенным Соником. Есть 3 других диалога которые мы будем использовать, их можно найти под RetroAchievements в меню. Сначала мы разберемся с инспектором памяти.:
Инспектор памяти может быть использован для поиска адресов в оперативной памяти для нас, чтобы использовать. По сути, вы находитесь на охоте за сокровищами для мест памяти-этот диалог поможет вам изучить и отфильтровать оперативную память игры во время игры. Чтобы начать или перезапустить тест, нажмите кнопку "Новый 8-битный тест" около верхней середины.
Чтобы все было просто, мы начнем с поиска адреса памяти, который содержит количество колец, которые мы собрали. Наши шаги будут следующими:

1. Загрузите диск и начните новую игру.

2. Сброс диалогового окна памяти: нажмите кнопку "Новый 8-разрядный тест".

3. Вернитесь в игру и измените количество колец в памяти. Например, соберите кольцо.

4. В диалоговом окне память теперь мы хотим отфильтровать значения, которые "больше, чем предыдущие значения "(символ">"). Мы выбираем это, затем нажимаем фильтр
Каждый раз, когда вы выполняете 3, а затем 4, количество возможностей или "кандидатов" станет меньше. Мы будем продолжать это делать до тех пор, пока количество кандидатов не достигнет очень малого числа (как можно меньше), это может занять 4-5 попыток. Далее мы можем нажать на окно результатов, и контролировать адрес памяти в окне просмотра памяти в нижней части. Продолжайте использовать игру, и вы должны увидеть изменения значений в памяти, когда вы собираете кольца. Если вы этого не сделаете, или если что-то выглядит не так, попробуйте другое значение. С первым Соник Ёжик адрес памяти для количества колец должен быть 0xfe20.
Примечание: с помощью команды сохранить состояние (F5, чтобы сохраниться, F8 для загрузки состояния, клавишу F6-F7 для переключения состояния), вы можете переключаться между различными состояниями, что позволит вам изменить то, что находится в оперативной памяти, и использовать это, чтобы отсеять плохие кандидаты. Вы можете искать значения, которые остаются неизменными (т. е. Если вы знаете, что значение не изменилось, используйте'=') или значения, которые отличаются (используйте 'not equal', symbol '!=').
Примечание: к сожалению, нет никакой гарантии от игры к игре о том, как разработчики сохранили свои данные (4-разрядные, 8-разрядные, 16-разрядные, двоичные десятичные, отрицательные/перевернутые, т. е. используя 0xff/0xffff для представления "набора" или просто случайным образом), но в конечном итоге вы должны встретить хороший адрес. Примечание. Если вы изо всех сил пытаетесь найти хорошие значения, опубликуйте на этих форумах или см. примечание в конце этого сообщения. Есть много людей, которые будут очень рады помочь!!
Совет: если вы хотите поэкспериментировать с памятью, попробуйте ввести новые значения непосредственно в RAM viewer. Это может иметь разрушительные последствия для игры, или она может делать именно то, что вы ожидаете, (или ничего вообще!) Это может быть полезно, чтобы увидеть, если вы можете ввести значение и получить результат, которого вы ожидаете. Используйте с осторожностью!
Когда вы нашли адрес вас устраивает, вы можете написать короткую заметку что это и нажмите 'Сохранить заметку, это сохранит её на датабазе, и будет автоматически восстановлено при следующей загрузке в просмотр памяти к этой игре, где вы находитесь! теперь после нажатия кнопки "сохранить заметку", заметка будет автоматически сохранена в базе данных, и будет общая так чтобы все разработчики могли открыть общий доступ к этим заметкам памяти. Все они будут загружены заново при загрузке диска. Если вы попытаетесь перезаписать заметку, она сначала это уточнит перед отправкой.
Хорошо, поэтому место в памяти для количества колец хранится в 0xfe20 (обратите внимание для не программиста, мы имеем дело с шестнадцатеричным кодом, который может быть сложным, но не волнуйтесь, по существу, это просто буквы вместо цифр), и не забывая " 0x " в начале, чтобы показать, что это место в памяти в hex. Мы нашли интересующий нас адрес и сохранили его, используя Save Note\Сохранение Заметки. Теперь мы хотим создать новое достижение. Теперь мы перейдем к диалогу набора достижений:

Здесь мы группируем все известные нам достижения в три набора:
1. Основные достижения (основные, публичные достижения),
2. Неофициальные / пользовательские достижения (публичные, но не присуждающие вам очки: для рецензирования),
3. Локальные достижения (личный ПК).
В диалоговом окне "достижения" нажмите "локальные достижения" (вверху слева), затем "добавить новое достижение" (внизу слева). Это добавит пустую запись в список в центре. Дважды щелкните по нему: если он еще не открыт, это должно его выбрать и открыть диалоговое окно редактора достижений.

Это последний диалог, в котором мы собираем все данные вместе. Самые верхние поля не требуют пояснений, т. е. Название, Описание, Очки. Главная - "потребности".
Допустим, мы хотим добавить достижение для сбора определенного количества колец. Скажем, 15 колец для простоты. После заполнения полей вверху и выбора подходящего значка (вы можете загрузить новый, сейчас я просто выберу значок золотого трофея (00136)), нам нужно заполнить требования. У меня есть одно требование, чтобы количество колец было не менее 15. далее кликаете - "добавить новое требование".
При нажатии на эту кнопку в список требований будет добавлено несколько значений по умолчанию. Эти значения по умолчанию просто гарантируют, что что-то относительно разумное добавлено к списку. Пока что, игнорируешь специальное поле?', что это говорит, ' пожалуйста, проверьте, что это значение памяти равно значению 10.'(10-это значение по умолчанию). Когда мы нажали кнопку Создать, значением памяти по умолчанию будет то значение, которое вы в последний раз оставили в диалоговом окне память.
Далее мы изменим эти значения на следующие:

* Размер: 16-бит
* Память: 0xfe20
* Cmp: '> = ' - это сравнение. Мы могли бы провести любое сравнение здесь, но разумно иметь "больше или равно". Это важно, потому что если мы получим 10 колец, то супер кольцо коробка, чтобы иметь 20, мы пропустили бы "ровно" 15 колец.
* Тип: 'значение' - мы сравниваем это значение памяти с фиксированным значением: 15
* Размер: "пусто" - актуально только при сравнении памяти с памятью
* Mem / Val: 15 - количество необходимых колец: значение, которое мы сравниваем с памятью
* Количество Попаданий: 0-игнорировать это на данный момент, это полезно, когда что-то должно произойти определенное количество раз
С этим набором у нас больше нет условий для добавления, поэтому мы возвращаемся к диалогу достижений. Чтобы быть в безопасности, мы должны сохранить наш прогресс, нажав "сохранить локально"! Это сохраняет все в файл локально, чтобы гарантировать, что мы не потеряем никакого прогресса. Теперь мы можем "активировать" это достижение локально, нажав "активировать" справа. Это позволит начать мониторинг этих мест памяти и наградит достижение, как только все условия верны. Теперь мы можем пойти дальше и проверить, работает ли это достижение!

Если мы нажмем ESCAPE в игре, вы увидите достижение как демонстрация того, как это будет выглядеть в оверлее игры!

Как только мы проверили, что достижение работает локально, есть двухэтапный процесс, который (в основном) безболезненный! Сначала в диалоговом окне достижения, мы выбираем наше достижение и нажимаем 'Commit Selected', и соглашаемся с диалогом. Это подтолкнет наше достижение на сервер и сохранит его под "неофициальными достижениями, представленными пользователями". Обратите внимание, что наше достижение все еще существует в этом диалоговом окне, оно просто перемещено на другую вкладку.
Примечание: (идея этой средней части заключается в том, что это будет удерживающая площадка, где пользователи могут голосовать за лучшие достижения, прежде чем их подтолкнут к набору "основных достижений". На данный момент любой может просто продвинуть достижение в основной набор, но в будущем это может быть привилегией суперпользователя (в случае спама/злоупотребления и т. д.).)
Наконец, чтобы подтолкнуть наше достижение к основным достижениям, и дать всем возможность скачать достижения, мы выбираем 'неофициальные пользовательские достижения' в верхней левой части этого диалогового окна, выберите наше достижение, нажмите кнопку 'Продвижение к основным, и вступить с ней в диалог. И Виола! Вы только что представили свое первое достижение!
Естественно, в группу "основные достижения" лучше всего добавлять только уникальные и интересные достижения. Если в основной группе имеются дубликаты, то последние добавленные дубликаты будут модерироваться и удаляться вручную. Если вы не хотите, чтобы ваше достижение было в основной группе, или вы думаете, что оно не подходит для основной группы (т. е. если оно неполное, или если иногда оно появляется, когда оно не должно, например, когда игра показывает демо), оставьте его в неофициальном/пользовательском разделе.
Дополнительное Примечание: при поиске адресов, есть потенциальный ярлык. PAR файлы могут быть очень полезны, смотрите эту ссылку для примеров PAR кодов. PAR коды обычно используются для принудительного адреса в оперативной памяти, чтобы осталось определенное значение. Адреса легко декодируются: если начинается 'ff', это значит 'сохранить значение, застрявшее в этом адресе'. Следующие четыре цифры-это адрес, а после двоеточия-значение, которое следует использовать. Например:
FFFE20: 00C8

Этот код предназначен для Соник 1, и воспроизведение действия гарантирует, что значение 00c8 застряло в адресе 0xfe20. Это заставляет Соник постоянно иметь (hex)кольца c8, что составляет 200.

Обратите внимание, что только коды воспроизведения действий (PAR) будут полезны для получения адресов для использования с RetroAchievements: коды Game Genie изменяют ПЗУ, а не оперативную память, и это не то, что мы ищем.

Комментариев нет:

Отправить комментарий