Оффтоп Maxim Ivanov
629

О переводах и технических трудностях... (Выпуск 8)

В закладки

Эта грё*****я игра и её грё*****е создатели! Да, именно с этих слов я хочу начать этот выпуск, посвящённый переводу Sonic the Hedgehog 2006. Некоторые защищают игру, ссылаясь на спешную разработку и производственный ад, однако весь трэш, что творится в файлах игры, нельзя списать на это - нет, такое можно сотворить только обдолбавшись особым сортом аниме. Уже хотите узнать, отчего моя пятая точка иногда улетала на Сатурн? Хватайте водный щит и приготовьтесь! Мы опускаемся на дно… Дно Sonic the Hedgehog 2006.

Часть 1: О самой игре.

Так как не все мои читатели заядлые соникофаны, то мне стоит начать с рассказа об игре. Вышла она, логично, в 2006-ом году, а если конкретней, то 14-го ноября в версии для Xbox 360 (и то на Западе), 21-го декабря в Японии (обе версии), и чуть позже (в 2007-ом) – версия для PS3. Этих странностей с релизом версий для PS3 и X360 я не понимаю и сейчас, но немного забегу вперёд и отмечу, что версия для PS3 «моложе» версии для Xbox 360, поскольку в коде её исполняемого файла почти нет старого мусора, в отличие от Xbox 360-версии.

Если же говорить о самой игре (без мата), то перед нами МОГЛА быть хорошая игра про Соника, с отличным дизайном, годной музыкой… Если бы не тонна багов, тормоза, общая недоработка большинства механик и вот этого.

Ну не мог не вырезать.

Как я уже говорил в введении, игра стала жертвой производственного Ада. Разработчики делали игру на новом для них движке, с новыми технологиями, давали непомерные обещания, уходили старые разработчики, приходили новые… Было «весело», в общем. Тут же можно добавить непомерное желание SEGA выпустить игру к Рождеству, чтобы срубить больше денег. Срубили, чтоб их.

И, казалось, как всё это должно влиять на перевод самой игры? Очень просто! Весь тот «Ад» отразился на файлах, но не все вещи можно объяснить этим самым «Адом». Думаю, пора уже перейти к нашей стандартной структуре…

Часть 2: О бедных хакерах замолвите слово.

Если вы незнакомы с предыдущими выпусками из этой серии, то расскажу вам про структуру. Сначала говорим о шрифте, затем о текстурах, а потом и о тексте вперемешку с самим переводом. В выпуске про «Resident Evil: Revelations» я рассказывал о бета-вещах, которые были обнаружены за время работ. Здесь я тоже расскажу о таких вещах. И их много (не говоря уже о всяких забавных/интересных штуках).

-Шрифт.

САМАЯ БЕСПРОБЛЕМНАЯ ЧАСТЬ ПРОЕКТА!

Серьёзно. В этот раз шрифт не вызывал такой боли, как в двух предыдущих проектах. Всё чётко, всё ясно и не вызывает вопросов. Единственное, что можно про него сказать:

1)Странное расположение.

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

2)Странная структура разметки.

Если перерисовать графику шрифта не вызывает проблем, то вот добавить конкретно новые символы в изначальную разметку может показаться сложным, так как разработчики зачем-то забивают концовку файла до определённого размера. Однако наш хакер по шрифтам не совсем разобрался, как добавить нормальную кириллицу, поэтому просто использовал уже присутствующие умляуты. По итогу текст, в готовом для игры виде, выглядит вот так:

Красиво, да?

А в самой игре:

-Текстуры.

На этом пункте уже моё седалище потихоньку начинало гореть. Как я понял, все текстуры игры содержатся в архиве sprite.arc (формат dds, конечно же), но при этом, чтобы игра понимала какую часть текстуры брать, вместе с текстурами идёт (sic!) файл разметки в формате xncp.

И вот ты думаешь «Ой как всё хорошо», но по итогу сталкиваешься с огромным числом костылей и прочей несуразицы. И о ней по порядку.

1)Куча мусора в архиве с текстурами.

Если вы распакуете файл sprite.arc, то застанете просто кучу каких-то левых текстур. Почему левых? Да потому что они относятся к различным периодам разработки игры. Например, есть папка с текстурами для демо-версии с Tokyo Game Show

А как вам текстура раннего меню паузы?

Или набор неиспользуемых наград?

В самой игре используется только "ОСНОВАТЕЛЬНО!" и "ОТЛИЧНО!"

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

К «мусору» также относят дубликаты текстур (но не на своих местах) и…

2)Текстура «Загрузка».

А теперь немного «смешного». Посмотрев на список папок…

…вы обнаружите папку «loading». Логично предположить, что там хранятся текстуры с надписью «NOW LOADING» (которую некоторые товарищи люто возненавидели из-за числа загрузок в игре) на разных языках. И да, там содержатся текстуры в формате dds. НО ВОТ НЕЗАДАЧА! При замене текстуры английской версии вы получите… надпись «NOW LOADING»! Ничего не изменится, как бы вы ни старались! В чём юмор? Возвращаемся к началу данного раздела. Я же упоминал про xncp? Упоминал. Упоминал и то, что это файл-разметка для текстур. Так вот, в папке «loading» лежат ЕДИНСТВЕННЫЕ xncp, содержащие помимо разметки и саму текстуру! Только при замене изображения внутри xncp, вы получите эту знаменитую надпись на русском!

Скриншот одной из промежуточных версий, где и тестировали "ЗАГРУЗКА".

3)Папка «bossname».

Мозги мне эта папка проела все и целиком. Дело в том, что в ней содержится текстура с именами боссов и все файлы разметок к ним. «Подумаешь, делов-то! Просто перерисуй текстуру!» Мы тоже так думали. По итогу получили:

Вспоминая случай выше, мы решили перепроверить xncp-файлы. По итогу получили:

В этот момент я начал судорожно искать, где ещё могут храниться текстуры. Когда я нашёл, то эффект был примерно такой же, как и с надписью «Нажмите любую кнопку» из Fire Emblem Echoes.

Видите ли, для катсцен и текстур, которые в них используются, есть отдельный архив под названием event_data.arc. А те моменты, где нам показывают имена боссов, по мнению разрабов, катсцены. По итогу, для каждой такой «катсцены» есть отдельная папка с текстурой…

Они самые...

Да вы, бл***, прикалываетесь! – воскликнул я и протестировал замену. Получил, наконец-то, то, чего я ожидал.

Finally!

А теперь весь сюр ситуации. В КАЖДОЙ ПАПКЕ лежит ОДНА И ТА ЖЕ ТЕКСТУРА, но С РАЗНЫМ ФАЙЛОМ РАЗМЕТКИ! Возникают два вопроса.

1)НАХ** ОСТАВЛЯТЬ И ТЕКСТУРУ, И ФАЙЛЫ РАЗМЕТКИ В ЛЕВОМ АРХИВЕ? 2)ВЫ ЧТО, СУ**, ВЫ ЧТО?!

Но ответа, видимо, я уже не узнаю. И нет, ссылаться на то, что в спешке забыли удалить текстуру и файлы разметки из архива sprite.arc не надо. Это делается за 3 секунды. Да чёрт возьми! У меня даже меньше часа уйдёт на то, чтобы почистить архив sprite.arc от мусора и игра даже не крякнется!

Как бонус, предлагаю проявить наблюдательность и найти неправильное написание одной папки на скриншоте из раздела про надпись "Загрузка". Ещё одно такое коверканное написание мы поправили в самой игре. Попробуйте найти.

А теперь переходим к выносящим мозг начисто вещам. К файлам с текстом игры.

-Текст.

Ну началось… Начну сразу с того, что сам формат mst помог разобрать мой давний знакомый TTEMMA, а товарищ MetLob написал плагин для своей программы AutoDump, с которой я провёл в обнимку много часов, гоняя туда-обратно текст. Стоит добавить, что, как и в шрифте, файл забивался в конце «мусором» до нужного размера. Зачем это делается, я так и не понял, но благо программа сама делала это, так что больше этим вопросом я не задавался. Задался я другим вопросом, когда взглянул на содержимое файлов с текстом. Обозначу сразу, что текст менюшек, фразы горожан, текст миссий и фразы на уровнях лежат в архиве text.arc. А вот субтитры к катсценам лежат уже в совсем другом архиве – event.arc. И если про субтитры к катсценам мне почти нечего сказать (я не считаю такой уж проблемой перепутанные строки в файлах, причём не понятно чей это косяк – программы или кодеров), то вот про остальной текст:

1)Mainmenu.mst и system.mst.

Эти два файла отвечают за текст главного меню и прочие системные строчки по типу «Продолжить без сохранения». С ними проблем, в целом, не возникло. Однако в них просто полным-полно всяких вещей, которые относились к ранним идеям и вырезанным вещам. Например, строчки про открытые эпизоды Тейлза, Руж, Омеги, Наклза, Эми, Блейз. Как например:

Также предполагалась таблица лидеров и загрузка дополнительного контента прямо из игры.

Ну и закончим с этими файлами строчками про загружаемый контент. Видимо, разработчики хотели распространять дополнительные эпизоды посредством DLC, но не срослось.

2)Battle.mst, file_select.mst, act_title.mst и network.mst.

Я выделил эти файлы в отдельный блок, так как… Они нафиг в игре не нужны (и ею не используются), но из них можно выцепить некоторую информацию. Это и то, что в игре планировалась стандартная система сохранения по слотам (15 штук), что в сетевой игре можно было выбирать локации для побоищ (тогда же и было 4 игрока, если судить по текстурам из папки tag_battle), что были задания по спасению Чао (коих динамят уже какую игру подряд, ради сранных виспов) и гонки с призраком. Интересно, но, к сожалению, кануло в лету окончательно (ничего из этого не осталось в файлах), так что мы даже не можем посмотреть, как бы выглядели те же Чао в дизайне S’06.

3)Options.mst.

Если кто помнит меню опций из финальной версии, то вы знаете, что там только две опции – субтитры и громкость музыки/эффектов. Однако, исходя из этого файла, в меню опций можно было выбирать качество звука, язык озвучания и язык текста, а также настроить гамму с яркостью, попутно включив вибрацию. Все эти функции даже остались в коде исполняемого файла, но включить их… Невозможно, к огромному сожалению (переключать язык озвучания посредством переключения языка консоли задалбывало).

4)Shop.mst.

Файл, достаточно интересный, поскольку его основную часть могут использовать товарищи, переносящие игру на ПК. Помимо текста магазина, что используется в игре, в нём можно найти вырезанные фразы продавца, который поясняет за магазин и его электронную версию, а также вырезанные товары – музыку из ранних частей, одну жизнь (как же этого, местами, не хватает в самой игре и было реализовано уже только в Sonic Generations) и… Радужный камень, описание которого гласит:

???

Чтобы узнать описание способности, сначала ее нужно приобрести!

Нужно ли говорить, что это способность превращения в «Cупер Соника»? Фанаты давно её нашли, но в самой игре она так и не работает. А жаль.

5)Twn_sonic/shadow/silver.

Эти файлы содержат текст жителей, задачи для конкретного эпизода и… Зачем-то целые куски из файла hint.mst, причём во всех трёх twn-файлах содержится одинаковый набор фраз из этого самого hint.mst. Что ещё более забавно – даже с вырезанной фразой Тейлза и вырезанной задачей для уровня Эми (где она спасала Элис от Эггмана). В самих файлах структура следующая:

-Пред-миссионые тексты жителей.

-Их имена.

-Простой трёп жителей.

-Их имена.

-Тот самый блок фраз из hint.mst.

-Задачи.

-Кусок с задачами из act_title.mst.

Да, структура всех трёх файлов именно такая и не меняется. Это, к слову, о тех вещах, что бесили, поскольку поначалу было совершенно не понятно, откуда берутся строчки в игре, в результате чего время переводчиков тратилось на совершенно не относящиеся к делу вещи! В какой-то мере, весь этот проект мне напоминал разработку этой игру – вокруг творился трэш, угар и содомия, а игра не давала хоть какой-либо подсказки «Что нужно переводить?». В итоге, по ходу перевода, был выцеплен весь (ну или я так думаю) нужный для перевода текст и переведён. Больше об этих файлах сказать мне нечего.

6)town_mission_sonic/silver/shadow.mst.

Эти файлы содержат строчки, появляющиеся при прохождении сайд-миссий. Особо про них тоже нечего сказать, за исключением вырезанных квестов. Например, квест за Шедоу, где вы спасали сотрудника «Римлайт», а он рассказывал немного из истории этой игры. И хотя этот квест вырезан, вы всё ещё можете сыграть в него и он, даже, будет на русском, так что попробуйте отыскать его.

7)hint.mst.

В этот файл разработчики запихнули ВЕСЬ текст на уровнях, подсказок не касающихся способностей персонажей/техники (например «Пойти бы мне туда» или «Эту черепаху можно использовать»). На самом деле, в файле достаточно много всяких вырезанных фраз:

1)Фразы персонажей для сетевой игры (причём не только трёх основных, опять таки вспоминая 4-ёх игроков).

2)Фразы для уровней, по которым можно было узнать и о секциях, где нужно искать воздушный транспорт (в самой игре его дают уже автоматически в нужных местах), и что роль Блейз в финальном бою эпизода Сильвера была намного шире, и невидимых врагов нельзя было бить, пока они невидимы…

Много чего там есть и перечислять всё банально долго. Если вы хотите узнать больше, то можете пройти по этой ссылке. Тут расписана большая часть вырезанных фраз.

И последнее – субтитры фраз перед битвами с боссами. В самой игре они звучат в тех самых «катсценах», когда представляют имя босса. Однако раньше предполагалось, что эти фразы также будут прописаны текстом. Не срослось, да и не представляю, куда там эти фразы можно вставить.

Часть 3: О неоднозначных вещах и некотором бета-стаффе.

Пока я превращался из технаря-любителя в гипер-технаря (по той причине, что я ещё и тестер), некоторые технические решения японцев просто заставляли желать смерти всем причастным. О таких вещах и поговорим. Например, вы знали, что японская версия файла с магазином лежит в отдельном архиве cache.arc (там же лежит японская текстура «NOW LOADING»)? Вот и мы не знали. А узнали только тогда, когда нам потребовался этот самый файл для сверки. Мата было много, когда я не обнаружил его на законном месте, но обнаружил его в том самом cache.arc. И это было ещё полбеды. Почти перед релизом эта история получила ВНЕЗАПНОЕ продолжение. Дело в том, что я вносил последние изменения в данный файл и запаковал его для последней проверки. Каково же было моё удивление, когда текст в японской версии… НЕ ИЗМЕНИЛСЯ ВООБЩЕ! По какой-то причине, я оставил файл с промежуточной версией в папке с японским текстом из архива text.arc. Думаю, мысль вы поняли – игра забивает болт на cache.arc, если увидит нужный файл в text.arc.

Или как вам такой факт – в обеих версиях содержатся файлы озвучки кнопок PS3 и Xbox 360. Об этом я узнал, когда решил не париться и заменить hint.xenon.mst из версии для Xbox 360 на аналогичный файл из PS3-версии. Какое же удивление испытали мы с одним товарищем, когда герцог Солеанны на полном серьёзе заливал нам про кнопку «Квадрат» в Xbox 360-версии. Я повторил данный опыт, но сделав обратное (файл из Xbox 360-версии запихнул в PS3-версию) и да, разработчики по какой-то причине хранят оба варианта озвучки. Но на этом эпопея с «идентичностью» версий не заканчивается. Рядом с текстурами шрифтов можно обнаружить… Да, да, кнопки геймпадов, опять-таки, обеих консолей. То есть при желании вы можете как два пальца об асфальт превратить версию для PS3 в Xbox 360 и обратно. Но и это не апофеоз безумия. Угадайте, как можно превратить архив PS3-версии в архив Xbox 360-версии? Распакуйте архив, переименуйте папку ps3 в xenon и запакуйте обратно. Всё! Игра даже не подавится и всё исправно покажет. Работает и в обратную сторону. Но проверял я это только с архивом event.arc, но должно работать и с остальными, благо текстуры не отличаются.

Напоследок отмечу вырезанный кооперативный сценарий, где Шедоу и Соник должны были объединиться и собрать Изумруды Хаоса, а им всячески мешал Эггман. Текст данного режима остался в hint.mst и я его вам даже покажу.

Часть текста.

Как видите, мы натерпелись всякого за эти четыре месяца. Предательства и подлости со стороны разработчиков, непонимание игры, баги и прочие костыли, но… Есть и другой вопрос, который надо обсудить. А именно «Иблис Триггер». Об это злосчастное название было сломано много копий и зубов. Кто-то решил его банально не переводить (ссылаясь на «сакральные кавычки», которые ровным счётом в японском ничего не значат), а кто-то тщетно пытался его адаптировать. И всё же мы смогли адаптировать. «Искра Иблиса». Вполне подходящая адаптация для того, кто зажжёт пламя Иблиса. Я уже предчувствую некоторых комментаторов, поэтому скажу сразу, что:

А) кавычки ни на что не влияют и у японцев они имеют ту же функцию, что и у нас “”.

Б) если кто-то заявит, что «Данное название одинаково на английском и японском», то у меня для вас весёлые новости. Только в немецком, английском и японском варианте сохранён «Иблис Триггер». Во всех остальных случаях это и «Сердце Иблиса», и «Ключ Иблиса», и даже… Экхем, «Семя Иблиса» (я даже знаю, кого такой вариант устроил бы).

Была проблема с всякими «Мистерами» и «Госпожами». В японском варианте диалогов нет «Мистера» и одна из катсцен внезапно теряла смысл, отчего пришлось продумывать диалог почти что заново. Но мы его всё же продумали. Как? Узнаете в игре. На этом я с вами прощаюсь и приглашаю оценить наш перевод по достоинству, а также поддержать команду не только словом «Спасибо!» Удачной игры!

Поддержать команду Failing Forward можно здесь.

{ "author_name": "Maxim Ivanov", "author_type": "self", "tags": [], "comments": 18, "likes": 17, "favorites": 5, "is_advertisement": false, "subsite_label": "flood", "id": 18414, "is_wide": false }
{ "id": 18414, "author_id": 39554, "diff_limit": 1000, "urls": {"diff":"\/comments\/18414\/get","add":"\/comments\/18414\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/18414"}, "attach_limit": 2, "max_comment_text_length": 5000 }

18 комментариев 18 комм.

Популярные

По порядку

Написать комментарий...
2

Чё, пацаны, IBLIS TRIGGERED?

Ответить
0

У некоторых уже "триггернуло".

Ответить
0

Меня триггернуло от русификаций названий уровней. Можно было и не переводить

Ответить
0

Я уже объяснял, но скажу, что их НУЖНО БЫЛО переводить, так как это не абстрактные названия уровней, а вполне реальные места для жителей Солеанны.

Ответить
0

Хм, забавно

Ответить
0

Мы бы и оставили их на английском, но, вот сюрприз, жители Солеанны вполне их упоминают, от чего вариант с транслитом уже не канал.

Ответить
0

В любом случае - от некоторых вариантов челюсть падает

Ответить
0

Старались адаптировать как могли.

Ответить
1

В этот раз уж больно большая статья вышла.

Ответить
0

Хорошая статья, у меня под нее как раз рабочий день кончился.

Ответить
0

Внезапно. Спасибо! =)

Ответить
0

У вас есть корректор в команде?

Ответить
0

И сразу основной вопрос - если да, он читал эту статью?
Есть те немногие, защищающие игру, ссылаясь на спешную разработку и производственный Ад, однако весь тот трэш, творившийся в файлах игры, уже нельзя списать на причины выше, так как такое можно сотворить только предварительно обдолбавшись особым сортом аниме

Ответить
0

А что здесь вам конкретно не нравится?

Ответить
0

Речь перегружена причастными и деепричастными оборотами.
Если их опустить, получим
"Есть те немногие, которые защищают игру, однако весь тот трэш, который творится в файлах игры, уже нельзя списать на причины выше, так как такое можно сотворить только обдолбавшись аниме"

Вот это что за переход "Есть те немногие, которые защищают игру, однако весь тот трэш"?

Ответить
1

*тяжело вздыхает*
Определённо нужно искать редактора и для статей/постов.

Ответить
0

Заменил на ваш вариант "разгрузки" введения. Спасибо.

Ответить
1

Эм, не стоило, он тоже плохой. Там как раз пример, что логическая связь теряется. "Есть те - однако трэш нельзя списать" - что?)
"Некоторые защищают игру, ссылаясь на спешную разработку и производственный ад, однако весь трэш, что творится в файлах игры, нельзя списать на это - нет, такое можно сотворить только обдолбавшись особым сортом аниме"

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Узнавайте новости о мостах
Санкт-Петербурга первыми
Подписаться на push-уведомления