Перейти к содержимому
Zone of Games Forum
Tericonio

Руководство по русификации игр от Adventure Game Studio

Рекомендованные сообщения

Программы для работы с файлами

agsutils, Любой HEX-редактор, Photoshop, Notepad++

 

Скрытый текст

 

Поддержка версии Adventure Game Studio (2.0 + /3.0 +)

Для распаковки исполняемого файла нам понадобится agsutils

Скачиваем с репозитория и извлекаем архив в удобное место к примеру на диск D:\

Переносим в папку agutils —  исполняемый файл с которым будем работать и запускаем из этой директории CMD

Команда распаковки исполняемого файла: agstract file.exe folder1

Команда распаковки AGS файла: agstract file.ags folder1

Если имя исполняемого файла с пробелом то закомментируем в кавычки, так же и Папку куда распаковывать, если у папки будет пробел

Скрытый текст

acsprset.spr // Спрайты игры

*.wfn //Информация о шрифте

*.ttf //Шрифт

agspack.exestub // Игровой Player или исполняемый файл самого движка

agspack.info //Информация о распакованных файлах

*.ogg //Внутренние файлы диалогов персонажей или комментариев разработчиков либо ещё музыка может быть

*.dta //Информация с текстами на кнопки, расположение текста и т.д.

*.pcx //Загрузочный экран — открывается в Photoshop

room*.crm //Комнаты в которых тоже присутствует текст и часть скриптов за их вывод

sprindex.dat // Всякие данные о спрайтах

 

 

Скрытый текст

 

agscriptxtract -oblf folder1 folder2

Редактирование *.s скриптов в folder2

Открываем в Notepad++ и находим через поиск li ax, "

В строке li ax, " — Будет текст диалогов

Ниже строк __NEWSCRIPTSTART — операнды диалогов из li ax 

Всё что ниже __NEWSCRIPTSTART  вырезаем в другой файл и сохраняем чтобы не мешало, пока переводим, а когда переведёте, верните назад в файл

Текст замещаем только в li ax, ",  а также смотрим на регулярки внимательно : \? & \’  \”

Пример 1: What…\? — Что\?.. = Что?..  ← Итог

Пример 2: &What… — &Что... = Что...  ← Итог

Пример 3: \’ What\’ … — \’ Что\’... = ‘Что’... ←  Итог

Теперь преобразовываем в кодировку ANSI и сохраняем

 

Скрытый текст

agssemble folder2/script.s

 

Скрытый текст

 

К примеру, мы распаковали игру и у нас вышли такие *.s скрипты

dialogscript.s / gamescript0.s /gamescript1.s /globalscript.s /room1.s /room2.s

Упаковка будет такая:

agsinject 0 RU_s/globalscript.o RU/game*.dta   //(0 — первый скрипт на упаковку в *.dta) (Первый глобальный)
agsinject 1 RU_s/dialogscript.o RU/game*.dta  //(1 — второй скрипт на упаковку в *.dta) (Второй диалоговый)
agsinject 2 RU_s/gamescript0.o RU/game*.dta  //(2 — третий скрипт на упаковку в *.dta) (Третий внутриигровой)
agsinject 3 RU_s/gamescript1.o RU/game*.dta  //(3 — четвёртый скрипт на упаковку в *.dta) (Четвёртый внутриигровой)

и т.д. если gamescript2 то уже будет после:  agsinject 4

Для комнат всегда будет 0
agsinject 0 RU_s/room1.o RU/room1.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)
agsinject 0 RU_s/room2.o RU/room2.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)

 

Поскольку текст не весь распаковывается из скриптов то часть остаётся ещё в *.crm и *.dta

 

Скрытый текст

После того как уже перевели в скриптах диалоги и вставили обратно в *.crm

Открываем в HEX-редакторе *.crm поэтапно

Первые 3 байта заголовок комнаты 21 00 01

2-3 байта размер секции или смещение (будем править после перевода до секции SCOMS/SCOMZ — самого скрипта)

с 5/6 байт по 0a — 0 байты

Со смещения 0x0b начинается первый отрезок комнаты и будет начало первого отрезка указанное в смещении 0x03

Теперь переходим к смещению 0x101, если первый текст объекта No hotspot или Hotspot*, то такие не переводим, а ищем между ними или же бывает объекты начинаются для перевода со смещения 0x101 (сам текст) а размер на смещении 0xFD

Включаем режим вставки, чтобы текст не замещался а вставлялся в кодировке ANSI (А  — С0) и перед объектом-текста за минусом 4 байта длина текста

Пример: 04 00 00 00 54 65 78 74 00 00 00 00 (04 — размер  3 байта нулевых поскольку предложение даже не превышает значение ff  и дальше пошёл текст 54 65 78 74 — Text)

Когда всё перевели между No hotspot и Hotspot* и заменили размер байтов перед текстом, ищем Начало следующей части комнаты, а именно SCOMZ или SCOMS,  и слева от SCOM через -9 байт будет начало первого нашего отрезка, сразу же после разделителя 07 (ID Скрипта) — И теперь выделяем с этой части и до 0x0b и будет наш размер или смещение на первую часть, и вписываем в смещение с 0x03 в перевёрнутом виде : 1с20 = 201с или 10020 = 200001

 

Как только заменили первый участок, ищем следующий через текст юКпѕ — сразу после него будет разделитель комнаты — 1 байт, а после будет уже размер отрезка — начало отсчёта 8 байт (количество объектов) после смещения и будет отрезок до следующего разделителя, и переводим так же как и в начале *.crm файла и после перевода и исправления размера перед текстом правим размер этого отрезка и сохраняем и так проделываем со всеми скриптами *.crm

 

Скрытый текст

После того как упаковали все скрипты обратно в *.dta 

Открываем в HEX-редакторе в 3 частях файла

 

Первая часть

После смещения 1800 будет первый текст на объекты или предметы, который надо переводить

Здесь не включаем Режим вставки, а просто замещаем текст 

Размер общего блока под объект/предмет 44 байта, под текст где-то 16 байт 

Править смещения не надо или размер общего файла

 

Вторая часть

Теперь переходи к последнему скрипту SCOM по поиску через юКпѕ

И после этих строк до btn или lbl находим имена персонажей, оставшиеся диалоги выбора или какой либо ещё текст

Для имён персонажей 24 байта для вариантов ответов или вопросов или диалогов 94 байта

Так же вставляем текст как и в первой части

 

Третья часть

Это оставшаяся часть с редактированием текста в btn  или lbl, и сам размер перед текстом  -4 байт и с включённым режимом вставки

В этом же месте можно изменить расположение текста и кнопок по осям X и Y (позднее напишу)

 

Скрытый текст

agspack -e folder1/ file.exe

Под обновление

Изменено пользователем Tericonio
  • Спасибо (+1) 2

Поделиться сообщением


Ссылка на сообщение

В игре Rosewater (движок версии 3.6.0) есть уже файл German.tra с немецким переводом. Может есть способ проще русифицировать игру, без ковыряния ассетов в Rosewater.ags? Просто правкой этого German.tra? По инструкциям, которые нашёл, утилитой AGSUnpacker почему-то ничего не получается.  Декомпилирую .tra в .trs, делаю правки в файле. Затем снова компилирую в German.tra. В игре ничего не меняется :( В чём может быть причина? Утилита не работает?

Поделиться сообщением


Ссылка на сообщение

@Chaves Dudevich у меня ничего не получается. Делаю изменения в немецком тексте в .trs, компилирую в .tra, и в игре изменения не отображаются. Вижу только что некоторые немецкие буквы поломались... На немецкий язык в настройках, естественно, меняю. Вы какой утилитой делаете изменения? Дайте её, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Chaves Dudevich сказал:

@Amigaser В самой игре язык поменяйте, чтобы German.tra работал.
 photo-2025-04-01-17-58-55.jpg

1 час назад, Amigaser сказал:

@Chaves Dudevich у меня ничего не получается. Делаю изменения в немецком тексте в .trs, компилирую в .tra, и в игре изменения не отображаются. Вижу только что некоторые немецкие буквы поломались... На немецкий язык в настройках, естественно, меняю. Вы какой утилитой делаете изменения? Дайте её, пожалуйста.

По опыту официальной локализации игр на движке Adventure Game Studio могу сказать, что важно соблюдать исконную кодировку файла при работе с ним. 

Смотрите. Допустим, вы открыли .trs файл в Notepad++. Внимательно посмотрите на немецкий текст — вы увидите, что часть немецких букв искажена из-за того, чтобы кодировка при открытии определилась неправильно. 

okGVquz.png

А теперь меняем кодировку с ANSI на ISO-8859-1.DOS и получаем:
gjek5aB.png


Хотя не знаю, сохранит ли Notepad++ нормально.
В своё время я менял текст в trs файлах от этих игр через wxMEdit.

Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

@Chaves Dudevich я тоже именно ей всё делаю. Использую последнюю версию (08) из репозитория. Там, по сути, две кнопки Decompile TRA и Compile TRS. Не получается как у вас изменить текст. А в каком редакторе вы редактировали текст в trs-файле? В какой кодировке он у вас открывается в редакторе?

@0wn3df1x Я редактирую trs-файл в Notepad++. В нём этот файл, который создала утилита AGSUnpacker, открывается в UTF-8 кодировке, и там все немецкие буквы отображаются нормально. Попробовал менять кодировки trs-файла, но ничего не помогает. Текст, который я добавляю в немецкую фразу вообще не появляется. :( Но про немецкие буквы вы правы, напр., если компилировать trs в ISO-кодировке, то буквы во фразах не ломаются. Но на кнопках всё равно ломаются.

Поделиться сообщением


Ссылка на сообщение

@Amigaser Редактировал в Notepad ++. Файл открывается в кодировке UTF-8. Предварительно еще распаковал ресурсы и сгенерировал game.id.

Поделиться сообщением


Ссылка на сообщение
1 час назад, Chaves Dudevich сказал:

Предварительно еще распаковал ресурсы и сгенерировал game.id.

Это для чего? В общем разобрался с текстом во фразах. Он появляется только если делать правку в “нумерных” строчках. Но шрифты в игре без русских букв.  Внешние русские шрифты agsfntХ.ttf не кушает. Вернее кушает, но русские буквы не отображаются. :( 

UPD. Со шрифтами разобрался. Они отображаются когда файл trs перед компиляцией переконвертировать из UTF-8 в ANSI. 

Изменено пользователем Amigaser

Поделиться сообщением


Ссылка на сообщение

Непонятно что делать с кнопками меню и пр. надписями. Изменения в текстах отображаются только для “нумерованных” строк. А все надписи на кнопках и в меню — в “обычных” строках. Видимо, утилита не всё правильно “декомпилирует” из tra. :( 

Поделиться сообщением


Ссылка на сообщение

@Amigaser 

Через *.trs не весь текст подхватывается, сам движок AGS так устроен, что часть текста не может декомпилировать в данные текста в файл *.trs

Часть текста бывает в изображениях — Надо смотреть файлы спрайтов и потрошить их

Часть текста бывает в сценах — Надо смотреть файлы комнат и потрошить их

Поэтому я и написал руководство по русификации на движке AGS, а не руководство по *.trs

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

Понятно. Сильно заморочно русифицировать такие игры. Я попробовал перевести текст кнопки в начальном меню по вашей инструкции. Но, к сожалению, не получилось, игра крашилась. Наверно, что-то не так сделал. Видимо, не буду заниматься переводом игры. Инструкция полезная, но слишком сложно для не профессионалов. Особенно возня с правками в hex-редакторе. Жаль что нет удобных GUI утилит для прямой правки ресурсов игры, напр., как для Unity.

Изменено пользователем Amigaser

Поделиться сообщением


Ссылка на сообщение

@Amigaser рано сдались. Сгенерированный trs файл конкретно для Rosewater должен быть в UTF-8. Если файл получен из tra, то в его начало нужно добавить строчку “//#Encoding=UTF-8”, тогда проблем с порченными символами не будет. Это бага в AGSUnpacker v08, он не считывает кодировку из tra файла если в нем есть блок настроек.

Что касается непереводимости текста кнопок в меню… На самом деле все переводится, просто разработчик для немецкого языка захардкодил текст этих самых кнопок на немецком. Проще говоря, когда выбран немецкий язык, игра ищет перевод не для “New Game”, а для “Neues Spiel”. Если в trs файл добавить перевод для этой строки, то текст начинает подхватываться.

HOKATvI.jpeg

Содержимое trs файла:

//#GameId=1087995093
//#GameName=Rosewater
//#Encoding=UTF-8
Neues Spiel+
TEST+

 

Поделиться сообщением


Ссылка на сообщение

@adm-244 с кодировкой понятно. А вот куда добавлять перевод строки, так и не понял. :( Утилита AGSUnpacker делает trs-файл German.trs, в котором есть вот такие строки

……
New Game+
Neues Spiel+
New Game
Neues Spiel
Load Game
Spiel laden
Settings
Einstellungen
Continue
Weiter
Quit Game
Spiel beenden
…...

Где и что мне нужно поменять, чтобы изменить надпись на кнопке, напр., Neues Spiel, чтобы это отобразилось в игре? В самом начале в первом меню игры. Объясните, пожалуйста, мне тупому… А лучше скиньте такой правленный trs-файл.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Ты это, свои хотелки за вероятное будущее-то не выставляй. Есть нормы русского языка, которым люди следуют. А в это время ты своё незнание пытается выставить в свете того, что авось когда-нибудь твои ошибки станут нормами языка. Даже если вдруг когда-нибудь и станут, но сейчас-то нет. Любой интерпретатор с тобой не согласится. А компилятор и вовсе тебя красным подчёркнутым матом покроет и пошлёт править ошибки. Пойми, что ты всё-таки ты не средневековый крестьянин, да и не деревенский рубаха-парень, да и стилизовать себя под него ты явно не пытаешься, чтобы твои детские ошибки были хоть как-то оправданы. К обычным оЧепяткам, оговоркам и простым мелким ошибкам в т.ч. с запятыми и т.п. тут никто не докапывается (обычно), но когда ты пытаешься выставлять своё банальное невежество за норму — это уже перебор всё-таки. Ну а если на то дело пошло, тол даже у просторечного стиля есть свои нормы, правила и нормы, которым следуют, когда нужно расписать персонажа подобного типажа. Это не просто взять и наобум налепить ошибок и исковеркать слова.
    • [vFonts.r01] В связи с внедрением разработчиков русского перевода от сообщества в игру, оставил только аутентичные кириллические шрифты.
    • Языки в мире вообще не совершенны и полны логических ошибок сами по себе, особенно французский. И ничего. Как-то никто вопросов не задает. Русский язык тоже не идеальный и время от времени в нем что-то меняют. Что-то с не правильного становится со временем правильным.  Сейчас правильно ставить ударение в слове звонит на второй слог. Хотя люди всё больше ставят ударение на корень в глаголах, чем на окончание. И скорее всего это скоро станет официальным “правильным” вариантом, может уже стало, я не особо слежу за этим, давно об этом читал. В языках программирования, главное выдерживать стиль, чтобы твой код понимали другие. В обычных языках я считаю, это тоже самое главное. Пока тебя понимают — всё ок. Если докапываться до каждой буковки и до каждой запятой, то вместо диалога у людей будет вечное редактирование ошибок. Если ты хотел показать мне, что такое не приятно читать, то надо было стараться сильнее. Я привык даже вот к такому: “приФфки, а ти ни ХоТил Бы ню такъс чтобы нимноЖечка, поФфармить асечки  то Ж я баЮсь одна миня моГутЪ убиФфать там злие пвпсчеры а ток ти са мной будефф и мы всих убфьем, мурь?”
    • Спасибо за развернутый ответ. Поживу тогда с костылем. Того, что работает мне с головой хватает
      В любом случае благодарю за вашу работу. Скрипт шикарный. )
    • Вообще-то зашито. Все млекопитающие играют в игры. Естественно, животные не играют в компьютерные игры, как и люди не играли до изобретения компьютеров. Тоже неправильный пример, т.к. без еды прожить нельзя, а без близости с другим человеком можно.
    • Да, как я и предполагал, за исключением дополнения в виде наблюдателя времени друзей.

      Экосистема менеджеров (Tampermonkey, Greasemonkey, Violentmonkey и др.), а также сред выполнения скриптов, встроенных в другие расширения (как в AdGuard), довольно разнообразна. Да, все они служат одной цели, но их внутренние реализации могут существенно отличаться. В основе их работы лежит концепция песочницы - изолированной среды, которая создается из соображений безопасности, чтобы пользовательский скрипт не мог бесконтрольно хозяйничать на странице, например, похищая личные данные. Но строгость этой песочницы и набор инструментов, которые предоставляются скрипту для общения с внешним миром, сильно варьируются. Хотя все они стремятся следовать общему стандарту Greasemonkey API, их реализации отличаются. Tampermonkey, на сегодняшний день, является наиболее функционально полным и стабильным менеджером, который реализует даже самые специфические, но ставшие стандартом де-факто в сообществе, возможности API, такие как unsafeWindow и гибкое управление кросс-доменными запросами. Другие менеджеры зачастую являются форками (ответвлениями) более старых версий или независимыми разработками, которые догоняют “золотой стандарт” по функциональности с разной скоростью. Иногда это приводит к тому, что в них отсутствуют определённые функции.

      Например, некоторое время назад была проблема с работой другого моего скрипта в OrangeMonkey (который использовал наш главадмин SerGEAnt). Она была связана с тем, как расширение обрабатывало разрешения на кросс-доменные запросы и взаимодействие с веб-редактором CKEDITOR, который используется на многих форумах на движке Invasion Board. Скрипту требовался доступ к API редактора, но OrangeMonkey не предоставлял необходимого моста для выхода из “песочницы”, что приводило к ошибке. В то же время в Tampermonkey этой проблемы уже не было, так как его разработчики реализовали более продвинутые механизмы взаимодействия с контекстом страницы. Это классический пример рассинхронизации в разработке, где одно расширение уже адаптировалось под новые веб-технологии, а другое - ещё нет. AdGuard, конечно, довольно мощнейший инструмент для блокировки контента и защита приватности, но выполнение пользовательских скриптов является его вторичной, хоть и очень полезной, функцией. Поэтому вполне объяснимо, что его песочница может быть более строгой, а среда выполнения не предоставляет некоторые узкоспециализированные, но критически важные для сложных скриптов API, такие как unsafeWindow. Это не столько недостаток, сколько фундаментальное различие в философии разработки: приоритет отдается максимальной безопасности, иногда в ущерб расширенной функциональности пользовательских скриптов. Теперь давайте пройдёмся по результатам. Это как раз то, о чём я писал в предыдущем сообщении. Во время разработки скрипт все еще мог получить список игр из window, но где-то с полторы недели назад Valve немного изменила свой фронтенд. Они всё активнее используют современные фреймворки, которые строят страницу динамически, а данные хранят внутри своей инкапсулированной экосистемы (состояние компонентов). Раньше переменные могли просто объявляться в глобальной области видимости, теперь же они "живут" внутри фреймворка, и доступ к ним снаружи затруднен. В какой-то момент массив с ID игр из списка желаемого (g_rgWishlistData), который раньше был легко доступен, стал инициализироваться таким образом, что его можно прочитать только через прямой доступ к JavaScript-контексту самой страницы. Именно для этого понадобился unsafeWindow. Он как ключ, который позволяет скрипту, работающему в изолированной песочнице, дотянуться до переменных на основной странице. Костыль (var unsafeWindow = window;) - это хороший фикс для предотвращения падения скрипта от ReferenceError, но он лишь создаёт псевдоним для window песочницы, в которой g_rgWishlistData по-прежнему не существует. AdGuard не предоставляет этот ключ, поэтому скрипт не может найти ID и сообщает об ошибке. Здесь причина схожа, но связана не столько с доступом к переменным, сколько с изоляцией сессии аутентификации. Ваше тестирование подтверждает, что среда AdGuard, скорее всего, выполняет скрипты в настолько изолированном контексте, что они не имеют полного доступа к вашей браузерной сессии на сайтах Steam. Для работы этих модулей необходима авторизация. Её отсутствие или изоляция приводят к неработоспособности: Наблюдатель: Его основная задача - отслеживать изменения в вашем списке желаемого и библиотеке. Для этого скрипт обращается к эндпоинту Steam /dynamicstore/userdata/:
      https://store.steampowered.com/dynamicstore/userdata/
      Когда вы авторизованы, сервер Steam отдает специальный JSON-файл, содержащий ID ваших игр из rgWishlist, rgOwnedApps и т.д. (в этом JSON также содержатся ваши настройки персонализации магазина, но нет и не может быть логина, хэша пароля, платёжной информации или токенов аутентификации). Скрипт использует эти ID, чтобы затем сделать отдельные, публичные запросы к API Steam и получить информацию по каждой конкретной игре. Когда скрипт через GM_xmlhttpRequest делает запрос к /userdata/, этот запрос должен содержать ваши аутентификационные данные. Если среда выполнения (AdGuard) не передает их, для сервера Steam этот запрос выглядит как анонимный, и он возвращает пустой ответ. Таким образом, у модуля просто нет исходных данных для работы - он не знает, за какими играми ему нужно следить, и его панель остается пустой. Время друзей: Механизм абсолютно такой же. Чтобы показать, сколько времени ваши друзья провели в игре, скрипт должен сначала узнать, кто ваши друзья. Эта информация находится на персонализированной странице сообщества Steam (friendsthatplay), например:
      https://steamcommunity.com/my/friendsthatplay/1245620
      она генерируется сервером динамически, специально для вашего аккаунта. Для анонимного пользователя или для скрипта, работающего в изолированной сессии без доступа к актуальным данным, такой страницы не существует - Steam просто не вернет нужные данные. Соответственно, без доступа к этой странице скрипт не может извлечь имена друзей и их наигранные часы и делает логичный вывод - “друзья не играли”. Фильтр “Только ваши DLC”: Этот фильтр в каталоге поиска полностью зависит от вашей личной библиотеки. Его механизм прост: при отображении каждого товара скрипт проверяет, является ли он дополнением (DLC). Если да, он определяет ID основной игры (parent_appid) и ищет его в вашем списке rgOwnedApps, полученном из того же /userdata/. Если вы не авторизованы или сессия недоступна, список rgOwnedApps пуст, и фильтр просто не сможет найти ни одного подходящего DLC. Помощники подарков (Gift Helpers): И на странице игры, и в списке желаемого, для корректной работы им необходима точка отсчета - цена и валюта в вашем регионе. Эту информацию Steam предоставляет пользователю через переменные g_strCountryCode и g_rgWalletInfo. Без них скрипт не может запросить локальную цену и выполнить правильную конвертацию для сравнения с ценой друга. Тем не менее, как вы и заметили, помощник на странице игры у вас сработал. Это связано с наличием в этом модуле специального костыля: если скрипт не может определить данные текущего пользователя, он по умолчанию использует данные для российского региона в качестве базовых. Это позволяет функции работать, но сравнение цен может быть неточным, если вы на самом деле находитесь в другом регионе. Для помощника в списке желаемого этот костыль уже не помогает, так как тот модуль при попытке получить ID игр со страницы. Вот как-то так.
    • *радостно думает — ведь Сам попросил… , достает набор томов Русского Языка и основ правописания*  — p.s. Знаки препинания, обоснованные правилами, не всегда могут передать ход мысли. Поэтому наличие лишних (,) иногда (,) в “общательно-форумных” целях (,) можно считать некоторым Самовыражением. Но вот отсутствие...)
    • Обновил русификатор - теперь русские шрифты основаны на оригинальных, и выглядят намного лучше.
    • Всем ку! Скиньте перевод пожалуйста!
    • Ты енто, тогось, не путай просторечие устаревшее “деревенское” словарное специально говорное с ихними тамошными твоейными ошибками по незнанию, чай культурный человек, городской же ж должен быть, а то ты чавой-то ентого опять ты напутал. Знаешь же ж, что мы тут все из дерЁвни, агась, при том ещё ж и не столичной дерЁвни, а чукчи, не иначе, агась. P.S. весь мозг сломал, пока печатал, понадобилось две чайки кофе и грибы.
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×