|
Перевод Spyro 3: Взлом и программы
|
|
| aleksusklim | Сообщение # 1 Воскресенье, 26.06.2011, 14:19 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Работа с текстовой частью перевода введётся на code.google.com/p/spyro3-rus, обсуждение перевода (а не взлома) В темеПеревод Spyro 3: Текст В этой теме происходит обсуждение перевода, а также создание софта для потрошения игры. Важные сообщения: Структура WAD-файлов Спец. символы и File Paint 1 | Извлечение и добавление текста | О звуке | В продолжение о звуке | Вариант перевода Buzz's Dungeon и Midday Gardens
Сообщение отредактировал aleksusklim - Среда, 29.04.2015, 19:51 |
| |
| |
| Serlutin | Сообщение # 511 Пятница, 13.03.2015, 20:40 |
Взрослый Дракон
 Летописец
«2343»
Где: Не в городе Драконов
|
aleksusklim, по факту он же еще около полгода работать будет. Ну и к тому же github действительно удобнее и круче, только надо git освоить вместо svn.
|
| |
| |
| aleksusklim | Сообщение # 512 Четверг, 26.03.2015, 20:19 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Цитата Serlutin по факту он же еще около полгода работать будет
Вопрос, стоит ли нам вообще заморачиваться с переездом? По факту, мы некорректно пользовались SVN. Лучшее, что мы делали – вики-страницы и списки на нём. А вот само Хранилище обновлялось редко, единовременно и однообразно, там не шла оживлённая командная работа. Что же делать...
Добавлено (25.03.2015, 20:57) --------------------------------------------- Решил попробовать взломать наличие посещения уровней (чтобы был не серый цвет строк в атласе) и способность Спаркса по ним перемещаться.
Получилось с первой же попытки! • С адреса «9BE0B0» (80072090) – единицы если уровни посещены, и нули если нет. Можно закрасить всё единицами, и весь атлас станет доступным. • Бочки и перемещения: «9B1914» (800658F4) – если там 2 или больше, то Спаркс начинает бить бочки, а в атласе появляется пункт Warp, позволяя перейти на любой уровень.
Побочные взломы: • «9B1904» (800658E4) – максимально количество жизней Спаркса. По умолчанию – 3. После прохождения третьего стрекозьего мира (и разговора с тамошней Зоей) приравнивается числу 4. Но вот что занимательно: зануление приводит к эффекту «вечнозелёной стрекозы» один-в-один! • «9B1908» (800658E8) – расстояние (сразу в игровых единицах, поэтому 4 байта), на котором Спаркс видит бриллианты чтобы подобрать, также действует на бочки но не на бабочек. Значительное увеличение приводит к тому, что он начинает летать по всему уровню и собирать всё подряд. Зануление – алмазики сможет брать только Спайро.
Добавлено (26.03.2015, 20:19) --------------------------------------------- Кстати, можно отключить пыль, занулив 4 байта по «9C03E8» (800743C8) – и тогда летающий на огромные расстояния Спаркс будет оставлять за собой трассированный след! А чтобы он не исчез, надо запускать FreezeCheat, зануление 4-х байт на «9C03D8» (800743B8), что не позволит стрекозе создавать новые пылинки.
Обе ячейки можно поставить на горячие клавиши, чтобы в нужные моменты заново активировать обработку объектов и пыли. Но значение действует только в пределах уровня, поэтому его задавать при определении горячих клавиш придётся вручную.
Вот и savestate: http://klimaleksus.narod.ru/Files/3/LongDragonfly.rar Самое начало. Включён мой FreezeCheat (игровая паузы замораживает и отпускает), открыты все уровни, перемещение включено, 99 яиц и 9999 бриллиантов; занулена обработка частиц, но это действует только в пределах Sunrise Spring Home. Запускать через SavestateRunner или просто поместить в /sstates/ под именем SCUS_944.67.000, кажется.
А ещё надо как-нибудь попробовать наассемблерить что-то вроде «if(v>0){s=v;v=0}else{v=s}» в основном цикле. Тогда, кажется, весь мир вокруг будет двигаться вдвое медленнее…
Добавлено (11.04.2015, 21:15) --------------------------------------------- http://www.spyro-realms.com/forum/48-11461-151215-16-1337284127
Фух, он распаковался. Новейшей версией 7z. Да почему только сейчас-то...
Ладно, штука и правда занятная. Ну хоть брейкпоинты ставить можно! (Адрес в памяти надо писать шестнадцатеричный и с 800...)
Но ps2dis под рукой обязательно иметь надо (сброс дампов сделан удобно). Разберёмся! Ссылочка на норм-запакованныую версию: http://klimaleksus.narod.ru/Files/3/ePSXeDebug.rar
|
| |
| |
| aleksusklim | Сообщение # 513 Воскресенье, 12.04.2015, 21:55 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Эй, кто тут крутой хакер, а? Скажите, кто тут крутой хакер! Вот что я накодил: http://klimaleksus.narod.ru/Files/3/GameplayTimer.rar
!!
Наконец, у фанатов будет таймер. Осталось плагин к эмулятору найти, который умеет нажатые клавиши записывать – и можно будет чемпионаты устраивать…
Короче, зелёный – время тикает. Жёлтый не в игровом состоянии – остановлен. Чтобы сбросить, надо нажать на паузу и дождаться красного. После этого выйти и будет чёрный, что значит, что при следующей остановке он сбросится – да разберётесь.
Я лучше про ассемблер расскажу! ePSXeDebug – божественная вещь, ну почему она попала к нам только сейчас.
Причём я его даже использую не по полной – почти только загрузка дампов. Алгоритм такой: – Дойти до нужного места в игре и нажать F11 (вообще каждый раз вместо Esc так надо) – Сделать «SAVE_STATE» и «Dump» – Загрузить «dump\ram.bin» в WinHex и ps2dis. – Поработать, изменить ram.bin. – Нажать «LOAD_STATE», «Load» и «Run» – изменения вступят в силу немедленно! Последние два пункта можно выполнять много-много раз, пока желаемыё результат не будет достигнут.
Правила ассемблера, ещё раз: • следующая строка после любого прыжка выполняется до самого прыжка, но после проверки условий (хотя условия на изменяемый в ней регистр лучше вообще не ставить). • команды загрузки из памяти притормаживают на одну строку – пользоваться регистрами сразу после считывания в них нельзя. • регистры t* можно менять как угодно, но при вызове какой-нибудь функции они испортятся; регистры s* наоборот никто не испортит, но и самому их портить нельзя, нужно сохранять; в регистры a* нужно передавать аргументы для функций, через v* – возвращать; sp – это стек и его лучше не трогать, at – всегда доступен, никому не нужен, но все его могут испортить; ra – надо сохранять, это адрес в родительскую функцию. • для прыжков на какие-то конкретные далёкие инструкции следует использовать j, но для простых перепрыгиваний строчек внутри своего кода лучше писать beq zero,zero – тогда при сдвигании всей функции на другой адрес они останутся актуальными относительными смещениями. • некоторые аргументы функций передаются через стек. Тогда содержимое этих ячеек нужно сохранять и восстанавливать, чтобы вписать туда свои значения (если конечно не использовать стек полноценно, но я пока так не умею и не пробовал).
Функции, про которые я что-то узнал: • 8002ebe4 – имеет отношение к центрированию надписей, считает занимаемую ими длину. Без неё некоторые текст будет отображаться со сдвигом.
• 8002e76c – рисует текст! Одну строку, кажется. Аргументы: – а0 – указатель на сам текст (все модификаторы кроме переноса строк поддерживаются), – a1 – позиция по горизонтали на экране, – a2 – по вертикали. – а3 – цвет текста, в наших же обозначениях (где 4 = зелёный). При этом @-модификаторы будут как бы просуммированы с этим числом; передавать 0 для нормального цвета. – $0010(sp) – стековый аргумент, должен быть нулём чтобы нарисовать всю строку. Иначе рисуется только часть (это для постепенного появления строчек в диалогах), причём длинна задаётся другими стековыми аргументами – короче, занулить $0010(sp) и всё, проблем нет.
• 80059814 – printf! Печатает числа по шаблону. Аргументы: – a0 – адрес для сохранения получившейся строки, ноль на конце будет добавлен автоматически. – a1 – строка шаблона; поддерживаются %d, %x – десятичные и шестнадцатеричные; «%08d» – значит добавить нули вначале так, чтобы цифр было не меньше восьми (или сколько захотите); «% 10x» (пробел после %) – значит добавить пробелы слева так, чтобы всего знаков было не меньше десяти – ну вы поняли… – a2 – число для первой подстановки, – a3 –для второй, – $0010(sp) – опять стековый и да, тот же самый – число третьей подстановки. Может можно ещё, но я не проверял.
• 80020300 – для рисования текста в меню паузы, я не понял что она меняет, но там просто вызывается 8002e76c. Может, делает текст в столбик по пунктам меню.
• 80020554 – само меню паузы, включая серый фон. Графика, не логика.
А знаете, где находится main game loop? Вот тут: • 80012048 – там две большие функции, и по-моему, одна из них логика, а другая – графика (по большей части). В той, которая графика, можно найти большой switch-case. По состояниям, и игра может находится только в каком-то одном. Там их много. И все они отвечают только за графику, то есть даже если занулить прыжки на функции, то игра почти всегда останется играбельной, но на экране в соответствующих ситуациях будет виден только фоновый цвет уровня. Состояния – это например гейм-плей, вход в портал, пауза, диалоги, сценки, начальное меню – да их полно! Например гейм-плей тут: 8001d288, а пауза тут: 8001dd40. И на каждую можно повесить нужный обработчик, если что.
Ну вот вы уже и поняли, как я свой таймер сделал, да?
Напоследок, пара мыслей. Во-первых, с помощью ePSXeDebug мы сможем реализовать всё что запланировали. Теперь это реально. Во-вторых, насчёт алгоритма сжатия текста… ну не будь 8002ebe4 – всё было бы элементарно! А так, придётся разбираться. Но попробовать стоит. Мой таймер-то – уже совсем не маленькая функция вышла, а значит всё в наших силах. А в-третьих, если метод алгоритма сжатия окажется реализуем, то туда можно (даже из без самого сжатия, просто доступ по той же технологии к простой строке) будет вшить парсер строк, который нам позволит писать нечто вроде «Привет, Сп[ай|и]ро, как дела?». Заманчиво, не правда ли, особенно учитывая последние разногласия, вернее, несогласия. Что будем делать с озвучкой? Взломаём. И сценки тоже взломаем, на крайняк можно вообще все субфайлы сценок дважды впихнуть с разной озвучкой, прямо как во французском Spyro2.
but nobody came
|
| |
| |
| steeldragon | Сообщение # 514 Воскресенье, 26.04.2015, 18:41 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Обновление для pasteFont: https://dl.dropboxusercontent.com/u....ont.zip Как пользоваться этими скриптами я говорил ранее.
Теперь скрипт меняет шрифт везде, а не только в субфайлах уровней. В принципе, я только немного изменил прошлую версию, потому что... Шрифт везде, где он есть, находится на одном и том же месте.
|
| |
| |
| steeldragon | Сообщение # 515 Четверг, 18.06.2015, 09:12 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Я тут написал небольшое дополнение для RipBIN: https://dl.dropboxusercontent.com/u....list.py
Этот скрипт нужно скопировать в папку с RipBIN. Он узнаёт LBA и размеры файлов из образа, после чего создаёт пустые файлы, которые можно использовать, чтобы извлекать или добавлять информацию на образ диска. Работает как обычно - нужно запустить файл и в открывшееся окно перетащить файл образа, после чего нажать Enter. Проверен на форматах IMG, ISO, BIN.
|
| |
| |
| aleksusklim | Сообщение # 516 Вторник, 23.06.2015, 00:29 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Смотрите: http://txti.es/ Наткнулся случайно.
Позволяет создавать свои странички с простейшей вики-разметкой (детали пока не проверял). Адрес страницы можно задать (например, использовать свой псевдоним).
Пароль редактирования каждой страницы можно выбрать (можно любой, можно на все одни и тот же). Можно ставить ссылки, то есть например вести одну свою страницу как индекс, в которой размещать ссылки на все остальные, а на каждой из таких – ссылаться на это оглавление.
Каждый из нас может вести свои странички, мы можем сослаться отсюда с форума на индексную страничку каждого из нас, а уж тот будет сам как хочет располагать там ссылки.
Надо посмотреть, можно ли там хоть как-нибудь делать таблицы…
Мне показалось, что штука в целом удобная, особенно для всяких там микроэнциклопедий или плавающих сообщений.
Забавнее всего то, что не требует регистрации в системе (и e-mail можно даже не вписывать). Пароль к страницам можно поменять, как и удалить сами страницы.
Как идея, будем пользоваться? На вид системка очень даже шустрая.
Если да, то нам нужно общее пространство имён, например преффиксовать наши страницы «spyro3rus-…». Имя автора для удобства (запоминания адресов) лучше в URL не вписывать, но в самом тексте желательно указать.
Да, там нет контроля версий и никакого совместного редактирования, но эй, нам это почти ни разу и не было нужно! Зато я так понял, что там такой дизайн, что на самом медленном соединении через самое медленное устройство можно будет и читать и править.
but nobody came
|
| |
| |
| steeldragon | Сообщение # 517 Вторник, 30.06.2015, 20:44 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата aleksusklim (  ) http://txti.es/ Сказали бы вы про это чуть пораньше... а теперь я и не знаю, надо оно нам или нет. Я свой сайт потихоньку собираю по кусочкам, а переводчиков что-то не видать... ======
Так или иначе, продолжаю взлом. Таблица шрифта в EXE похоже, одинакова во всех версиях Spyro2/3, исключая японскую Spyro Tondemo Tours. Местонахождение таблиц (все адреса в dec): 356296 - Spyro 3 GH 366292 - Spyro 3 Platinum 343716 - Spyro 2 362304 - Spyro 2 (Europe)
Напоминаю, длина таблицы равна 256 байтам.
|
| |
| |
| aleksusklim | Сообщение # 518 Пятница, 14.08.2015, 22:44 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Не сочтите за дезертирство, просто сотрудничество…
|
| |
| |
| aleksusklim | Сообщение # 519 Среда, 10.02.2016, 01:46 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Так, я тут хочу немного освежить знания.
Во-первых, есть теория, что если в субфайле данные 4 байта по смещению 16 и 64 совпадают –то это субфайл из Spyro2 (просто как для автодетектора).
Во-вторых, в четвёртом сусб-субфайле первое смещение первого прыжка равно 48 для Spyro3, и 44 для Spyro2. Оттуда до таблицы объектов для Spyro3 – 12 прыжков, а для Spyro2 – восемь. А ещё три прыжка – и начало большого оконечного листа указателей.
Для каждой строки текста или имени верно следующее: на неё есть локальный указатель, на сам который есть другой начальный указатель из этого листа. Таким образом я зафиксировал «свойства» любой оригинальной строки: номер субфайла и суб-субфайла; индекс в листе соответствующего указателя (или смещение от начала файла к нему); значение этого указателя = индекс настоящего указателя; значение настоящего указателя = место для оригинальной строки; длинна (отведённая) оригинальной строки. Всё это в предположении, что мы не будем менять элементы в листе между собой. Однако есть хороший способ «выключить» элемент листа: просто приравнять своему смещению. Он воздействует сам на себя, а целевой указатель (который мы уже заменим, скажем, абсолютным адресом в EXE) останется рабочим и нетронутым (проверено, но не тщательно). Таким образом имеем три состояния: • лист не тронут, указатель не тронут (строка на своём месте); • лист не тронут, указатель локально изменён (строка сдвинута); • лист выключен, указатель абсолютен (EXE или яичная зона, другой суб-субфайл).
А ещё отведённое место под строки может быть больше, чем фактическая длинна. Когда остаток от деления этой длинны на 4 не равен трём. Короче, суть в том, что если последний терминирующий ноль находится не в последнем байте своего «слова» (четырёх байт), то остальные байты этого слова резервируются нулями, иногда давая нам 1,2 или даже 3 дополнительных символа (последний ноль затирать нельзя).
Строки теста, в отличие от имён, содержат в своём первом байте смещение, на которое надо отступить вперёд, чтобы добраться до самого текста. Во многих случаях это просто число 1. Вообще оно отвечает за поведение диалога (движение камеры, персонажа, анимацию, выдачу шаров и яиц, открывание мостов…), но я не знаю, как; а попытки повлиять сбрасывают игру.
Если строка «выключена» (скажем, это «имя» таблички, которого нет) – в первом байте пишется 255, остальные три – зарезервированы. Так уж вышло, что во многих объектах есть несколько фиктивных строк в конце, которые ничего не делают (а может и делали бы, надо попробовать-таки заактивировать их…) и выключены. Но при этом все указатели по вышеописанной схеме валидны. Наличие таких пустышек дарит нам дополнительные места для текста, учитывая, что все реплики одного (физически) персонажа следуют подряд – текст можно «сдвинуть». Причём фишка с остатком четырёх и дополняющими нулями действует и на все промежуточные тексты, несмотря на то, что текст не обязан быть выровнен по четырёхбайтовым словам, видимо это просто их компилятор перестраховался. Итого имеем потенциальные байты с каждой реплики, плюс – иногда подарочек в конце. Однако его нельзя просто так брать, чтобы указатель на 255-0-0-0 остался валидным. И есть простейшее решение!
Сам объект персонажа с текстом (88-байт структура) имеет на первом же месте указатель на свои 12 байт дополнительных данных, из которых ему нужны только 8 (я уже где-то писал, что в них записано – там есть номер озвучки по уровневому списку озвучек; потом найду и вспомню ), а оставшиеся четыре равны значению 255-0-0-0, которое не меняется и во время выполнения. Сразу после него – указатели сначала на имя, потом на все реплики; все они – те самые, на которые был указатель в списке.
В итоге, детектор «говорящего» объекта: 1) FF000000 после его дополнительных данных. 2) Наличие указателя на +4 и +8 (от данных предыдущего пункта) в оконечном листе. Попробую отфильтровать так, и узнаем, хватает ли этого.
Так вот, те самые указатели на пустышки можно прямо вот так локально же и перенаправить на 4 байта, которые находятся перед указателем на имя персонажа.
Иллюстрация: http://klimaleksus.narod.ru/Files/H/edit_01.png Выделены 12 байт дополнительных данных персонажа. Всё, что начинается с имени, и до самого конца (покажу чуть ниже) – можно вроде как переформатировать, чтобы избавится от подряд стоящих нулей в этом блоке текста – например после самого имени их аж 4 (три из который пойдут нам в плюс), потому что имя состоит из четырёх букв (а было б из трёх – не получили б ничего. Зоя…)
Кончается так: http://klimaleksus.narod.ru/Files/H/edit_02.png Выделены «лишние» заглушки под строки, которые можно отобрать себе. Курсор стоит за последним символом текста – и снова удача, это начало новых четырёх байт, три из которых забираем. Итого я насчитал (включая ещё один байт там между репликам) аж 26 дополнительных символов на все тексты этого персонажа. Вроде неплохо. Только я пока никак не могу придумать хороший-удобный способ вносить тексты по этой схеме. Получается, всё надо заранее планировать таким образом, что тексты будут вноситься не строками, а сразу персонажами, потому что свободное место можно делить меж его репликами.
but nobody came
|
| |
| |
| aleksusklim | Сообщение # 520 Среда, 10.02.2016, 11:21 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
А чего я торможу-то? Это же задача о рюкзаке! У нас есть персонажи, у которых массив текста. Неважно какого. У нас есть набор строк, которые надо разместить. Можно ж любые к любым! А еще можно замутить фишку, что когда самая короткая строка не влезает, то она автоматом уходит в EXE. Основной алгоритм работает перебором - норм. steeldragon, у вас так?
|
| |
| |
| steeldragon | Сообщение # 521 Среда, 10.02.2016, 16:13 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Я только что нашёл дополнительное место для текста. Третий субфайл уровня заканчивается конструкцией вида "00000000FFFFFFFF00000000" и после этого ещё много-много нулей, около пол-килобайта минимум. И они все загружаются в память! И не используются, по-видимому.
Конкретное количество нулей зависит от уровня, обычно от половины до полутора КБ, однако в Sunny Villa свободно аж десять килобайт.
|
| |
| |
| The_Werewolf_Thunder | Сообщение # 522 Вторник, 01.03.2016, 17:25 |
Яйцо
 Житель Города
«58»
Где: Не в городе Драконов
|
Здравствуйте. Извините, если помешала. Это я, очередной доброволец, хорошо знающий английский язык и мечтающий стать переводчиком иностранной литературы, великий Спайрофан по совместительству. Могу чем помочь, или лучше не путаться под ногами?
Я - Последний Безмолвный Царь. Берегитесь моего царского могущества! _____________
ВСЕ СИПУХИ - ДЕМОНЫ! ЗАПАСЙТЕСЬ СОЛЬЮ, ЧИСТЫМ ЖЕЛЕЗОМ И СВЯТОЙ ВОДОЙ - ОНИ УЖЕ В РИЛМСЕ НАРЯДУ С ДРУГИМИ СОВАМИ! _____________
- Это удивляло бы , если б я была драконом. - Но... Тогда кто ты? - Я оборотень. А теперь беги. Ну, чего ждёшь? - Зачем? - Ну, это обычная реакция. Нас все боятся. - Вас просто не понимают...
|
| |
| |
| aleksusklim | Сообщение # 523 Вторник, 01.03.2016, 21:43 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Цитата The_Werewolf_Thunder Это я, очередной доброволец, хорошо знающий английский язык и мечтающий стать переводчиком иностранной литературы, великий Спайрофан по совместительству.
Вау.
Не, у нас тут просто сова улетела, хотя вы:
Цитата The_Werewolf_Thunder Вот уже все эти годы, с самого основания сайта, я регулярно захожу сюда, слежу за его жизнью.
– по идее всё тут знаете как у нас устроено. Я полагаю. Ну вообще да, /f48 всегда был неприметненький такой…
Цитата The_Werewolf_Thunder Могу чем помочь, или лучше не путаться под ногами?
Я… так, я тут пилю конвертер неба Spyro1 в небо Spyro2/3 (меня просто сильно приспичило). И даже если я его закончу, то вряд ли смогу в данное время быть чем-то полезен с практической точки зрения. К сожалению.
Цитата The_Werewolf_Thunder Здравствуйте. Извините, если помешала.
(Тома-а-ас!! Возьми собачку, а?..)
Уф, что мы имеем… Насколько я помню, тексты Spyro3 GH застыли в некоем предфинальном состоянии. Они вроде готовы, но мы их что-то не до конца доредактировали. В прочем, как обычно. Правда steeldragon уже неоднократно собирал пробные патчи текстов (которые я даже не открывал). Нужен бы кто-то, кто потащит паровоз на финиш… Прямое задание дать не могу, я уже давно запутался, и там надо ветку Текста перечитать, чтобы понять, на чём ж мы тогда застопорились. Надо сообразить, если ли у нас где-то собранные тексты. А вообще, если вы на самом деле видели, как у нас тут происходит процесс перевода, то мне очень хотелось бы узнать ваше мнение насчёт «Чё ж нам делать-то!?». Не то чтобы мы не знали, просто может какая новая идея полезная будет насчёт упорядочивания горы текстов…
Spyro1 JAP по-моему, переведено. Да, там кажется просто редактирование-утверждение осталось. Ох… Spyro2 JAP тоже, но там было катастрофически мало обсуждений, многие уровни ещё нечитаны по-серьёзному.
Spyro2 EN (на русский), кстати, вроде как идёт хорошо и относительно активно. О, там требуется редактирование новых переведённых текстов. Которые довольно высокого качества сами по себе; если же чисто искать и исправлять ошибки – то лучше Spyro2 JAP вычитывать.
Spyro2 UKR (с английского на украинский) наверное можно пока не трогать, ждём возможного появления переводчика; это неприоритетный проект в его отсутствие.
Цитата The_Werewolf_Thunder Знакомьтесь, и принимайте в свои дружные, стойкие ряды. Приятно наконец подать голос.
Так вы это… теперь типа с нами, да? На полпути не бросите, ни через месяц не забудете? ^^
but nobody came
|
| |
| |
| steeldragon | Сообщение # 524 Среда, 02.03.2016, 00:17 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата aleksusklim (  ) Надо сообразить, если ли у нас где-то собранные тексты. Вот здесь всё, что собиралось ранее: https://github.com/VectorDelta/spyro3-rus/ Так, просто напоминаю... https://github.com/VectorDelta/spyro3-rus/blob/master/Text_levels3.csv - таблица со, вроде бы, последними версиями текстов. На данный момент там около половины всех текстов уровней.
|
| |
| |
| The_Werewolf_Thunder | Сообщение # 525 Среда, 02.03.2016, 06:43 |
Яйцо
 Житель Города
«58»
Где: Не в городе Драконов
|
< Теперь типа с нами, да? Ну типа да. Конечно, только если сами не выгоните :) Ну ничего, когда найдёте для меня работу, я тут же прийду. Пока пойду поблуждаю по текстам.
Я - Последний Безмолвный Царь. Берегитесь моего царского могущества! _____________
ВСЕ СИПУХИ - ДЕМОНЫ! ЗАПАСЙТЕСЬ СОЛЬЮ, ЧИСТЫМ ЖЕЛЕЗОМ И СВЯТОЙ ВОДОЙ - ОНИ УЖЕ В РИЛМСЕ НАРЯДУ С ДРУГИМИ СОВАМИ! _____________
- Это удивляло бы , если б я была драконом. - Но... Тогда кто ты? - Я оборотень. А теперь беги. Ну, чего ждёшь? - Зачем? - Ну, это обычная реакция. Нас все боятся. - Вас просто не понимают...
|
| |
| |