Версия движка для помощи в переводе игр

Ivan Mogilko: Добрый день. Давно я не писал на этом форуме... Раньше мой ник здесь был, кажется, "ikm", но пароль забыл и найти не могу. Я - "Crimson Wizard" с офиц. форума АГС, участвовал в улучшении движка последние несколько лет (может быть не слишком удачно, сказать сложно). Сейчас я завершаю свое активное участие в этом проекте, т.к. интерес почти пропал.... Но это так, для вступления. Я пару раз делал версии движка со встроенными "хаками" по запросу raulpro, впервые с ним познакомился у вас в "English Zone" части форума. Недавно отдал обновленную версию этого движка ему, и решил запостить здесь тоже. Что это за движок и чем он может быть полезен. Движок основан на версии AGS 3.4.0.12, - это последняя официально выпущенная версия (от сентября 2016). Т.е. с ним в теории можно запускать все игры версий от 2.50 до 3.4.0. Движок содержит два "хака" в помощь запуска переведенных игр. Хаки опциональны - это сделано нарочно - включаются прописыванием опций в файле настроек игры (acsetup.cfg). Ссылка для скачивания: http://www.mediafire.com/download/pzhzi8jev9kmidv/acwin_tra_hacker.zip Ссылка на ветку репозитория с исходниками именно этой версии: https://github.com/ivan-mogilko/ags-refactoring/tree/tra-hacker Как использовать движок: Кладете файл движка в папку с игрой и запускаете ЕГО (не саму игру). Если вам не нравится имя файла (acwin.exe), то можно переименовать, никакой разницы не будет. Обращаю внимание! - т.к. настройка движка версии 3.4.0 (размеры окна, и т.д.) может отличаться от настройки старых игр, то рекомендую запускать именно его окно настроек. winsetup.exe тут не поможет (он будет запускать окно настроек встроенное в игру). Запускается он из командной строки вот так: acwin.exe --setup Эту команду можно прописать в bat файл и запускать его для удобства. Также есть полное описание всех опций которые можно использовать в файле acsetup.cfg в версии 3.4.0 (на английском языке): https://github.com/adventuregamestudio/ags/blob/master/OPTIONS.md Описание "хаков": 1) Борьба с защитой от включенного перевода. Я на вашем форуме нашел пояснение этой зашиты вот здесь: http://sq.forum24.ru/?1-6-0-00000273-000-20-0#029 Суть там в том, что скрипт игры проверяет наличие перевода с помощью функции IsTranslationAvailable(), и если она возвращает положительный результат, то игра выдает сообщение о недопустимости запуска и дальше не идет. Этот хак заставляет эту функцию всегда возвращать отрицательный результат. При этом не надо заниматься нудными вещами типа редактирования файла игры в двоичном редакторе и изменения данных по нужному адресу: так как это движок управляет игрой, то он просто засталвяет скрипт работать иначе. Хак включается прописыванием следующей опции в файле конфигурации acsetup.cfg в папке с игрой: [hack] stealth_tra = 1 2) Возможность перевода словаря парсинга строк (для текстовых игр или для игр со вводом паролей). Здесь объяснение чуть посложнее. К сожалению, АГС не включает автоматически словарь парсера в перевод. Есть способы обойти это ограничение, но это работа авторов игры, т.е. если создатели игры этим не озаботились, то ничего (обычным образом) поделать нельзя. Что делает этот движок? Он позволяет выгрузить словарь парсера в отдельный - текстовый - файл, который можно редактировать, а затем загружать строки из этого файла в игру заместо исходного словаря. а) Включается прописыванием следующей опции в файле конфигурации acsetup.cfg в папке с игрой: [hack] parser_dic = NAME_OF_FILE Вместо NAME_OF_FILE подставляете имя файла, например "parser.dic" или "russian_parser_translation.txt" (как больше нравится). б) Запускаете движок в папке с игрой первый раз, предварительно УБЕДИВШИСЬ! что в этой папке нет файла с таким названием. Запустив игру можно сразу же выйти. Движок выгрузит словарь парсера в файл с указанным именем. в) Открываете этот файл в простом текстовом редакторе (не Ворд :)), и переводите все слова как хотите. Обращаю внимание - этот файл работает гораздо примитивнее обычных файлов перевода TRS, т.е. оставлять оригинал слов и фраз НЕ НАДО. Прописываете перевод прямо поверх. Длина перевода может не совпадать с длиной оригинала - об этом беспокоиться не нужно, но должна умещаться в 30 символов - это ограничение АГС. г) Закончив перевод и сохранив файл :) запускаете игру через движок снова. Теперь он должен подставить ваш перевод в парсер игры. Ну и в качестве PS. Исходники AGS лежакт в открытом доступе и имеют свободную лицензию уже лет 5 (с середины 2011, кажется), поэтому если надо изменить еще какое-нибудь поведение, то часто проще подредактировать движок, а не менять байты в хекс-редакторе. Ну это я так, к слову :), а то мне страшно смотреть, когда люди таким "низкоуровневым" хакингом занимаются :) (тем более что в случае агс это уже излишне). Вот к примеру наш репозиторий, исходники которого использовались для выпуска всех последних версий: https://github.com/adventuregamestudio/ags


полная версия страницы