{{indexmenu_n>15}}
====== Файлы игры ======
Картинки, звуки и всё остальное, что показывается игроку, лежат в папке игры на нашем хранилище. Заливаются они во вкладке **«Файлы»** редактора.
Это единственное место редактора, которое работает **не через черновик**: файл уходит на сервер сразу, и удаляется тоже сразу. Кнопка «Сохранить...» к нему отношения не имеет.
{{ :authors_main:task_editor:files_tab.png?800 |Вкладка «Файлы»: сюда заливают картинки и звуки, помимо черновика}}
===== Что можно залить =====
^ Тип ^ Расширения ^ Не больше ^ После сжатия ^
| Картинка | jpg, jpeg, jfif, png, gif, webp | 10 МБ | 2 МБ |
| Звук | mp3, m4a, ogg, wav | 5 МБ | — |
| Видео | mp4 | 5 МБ | — |
| Документ | pdf, txt | 1 МБ | — |
| Файл кода | js, css, json, html, svg | 256 КБ | — |
| Файл данных | zip | 1 МБ | — |
Та же таблица есть в самом редакторе — по знаку вопроса рядом с заголовком блока.
Регистр расширения не важен: ''ФОТО.JPG'' заливается так же, как ''foto.jpg''.
Список форматов — не прихоть: это ровно то, что наш сервер отдаёт игроку. Файл вне списка залился бы, а у игрока не открылся, поэтому mov, heic, avif, webm и шрифты мы не принимаем.
> **Общего предела на игру нет.** Ограничения только на каждый файл по отдельности.
===== Оптимизировать картинки =====
Галочка стоит по умолчанию. Со включённой галочкой движок:
* уменьшает картинку до **1102 точек по ширине** (шире не делает никогда);
* пережимает её;
* **png без прозрачности сохраняет как jpeg** — расширение при этом меняется;
* теряет метаданные (EXIF).
Если после сжатия не выиграно хотя бы пяти процентов, остаётся оригинал.
**Снимайте галочку на конкретный файл**, когда нужна полная ширина — например, картинку разглядывают с зумом, — или когда EXIF часть задания: в городских играх в фотографии прячут координаты и время съёмки. Галочка не запоминается и на каждой загрузке снова стоит: «запомнить» означало бы тихо отменить сжатие всему остальному.
> Со снятой галочкой предел **2 МБ применяется к оригиналу** — уменьшать картинку придётся самому. Браузер откажет ещё до отправки.
Движок не трогает анимированные картинки (gif, apng, анимированный webp) и картинки больше 40 мегапикселей — им придётся уложиться в 2 МБ самим.
==== Картинка в пути ====
Ссылку движок отдаёт **не сразу**: строка сначала говорит «Картинка в пути, ждём ссылку», и рядом с ней кнопка «Отмена». Так и задумано — имя файла может смениться (png стал jpeg), и ранняя ссылка оказалась бы мёртвой.
Одновременно движок сжимает две картинки, остальные ждут очереди. Если ждать пришлось больше двух минут, будет сказано: «Сервер занят сжатием картинок, попробуйте ещё раз через минуту». Ничего не потеряно — повторите.
Если сжать не удалось вовсе, файл всё равно заливается, ссылка рабочая, а под ней приписка **«Залито без оптимизации: сжать картинку не удалось»**. Это не ошибка: картинка просто осталась оригиналом. Но если она при этом больше 2 МБ, её не примут.
===== Имя файла =====
По умолчанию движок даёт файлу своё короткое имя, а ваше запоминает и показывает в списке. Галочка **«Сохранить название»** оставляет ваше имя — оно же попадёт в ссылку.
* Ваше название — до **128 знаков**, имя на диске — до **64**.
* Нельзя ''/'' ''\'' ''#'' ''?'' — слэши увели бы файл из папки игры, а ''#'' и ''?'' обрезают ссылку в браузере. Проверяется имя, которое ложится на диск: ''фото #1.jpg'' зальётся без галочки и будет отвергнуто с ней.
* ''.php'' и ''.htaccess'' в имени не принимаются вовсе.
* Пробелы и кириллица можно, но в ссылке они останутся как есть.
**Имена, начинающиеся с ''item_''**, — картинки предметов инвентаря. У них название сохраняется всегда, независимо от галочки, и формат никогда не меняется: движок ищет такую картинку **по имени**. Подробно — на странице [[authors_main:task_editor:advanced:inventory|Инвентарь игрока]].
===== Ссылка на файл =====
Каждая строка списка — это ссылка; клик по ней копирует её в буфер. Хвост ''?v=…'' — отметка времени файла: она меняется при замене файла, и браузер игрока подхватывает новую версию, а не показывает старую из кэша.
Вставлять ссылку в задание нужно **после** заливки, а не до: имя может отличаться от того, что вы залили.
===== Заменить и удалить =====
**Замена.** Залейте файл с тем же названием в ту же игру — он заменит прежний, а ссылка останется прежней. Это обычный способ поправить картинку, не трогая задания.
Одно исключение: если при сжатии сменилось расширение (png стал jpeg), старая ссылка перестаёт работать, и задания, где она прописана, придётся поправить.
> Другая картинка под уже занятым названием **молча заменит** прежнюю во всех заданиях, где та стояла.
**Удаление.** Кнопка «Удалить» в списке. Движок не проверяет, используется ли файл в заданиях: картинка просто пропадёт везде, где стояла. Списка «где используется» нет, отменить удаление нельзя — только залить файл заново под тем же названием.
===== Копия игры =====
**Копирование игры файлы не копирует.** У копии своя, пустая папка, а задания в ней продолжают ссылаться на файлы **исходной** игры.
Работать это будет, пока исходная игра жива. Но список файлов у копии пуст, замена картинки в копии на задания не повлияет, а удаление исходной игры сломает копию. Если копия должна жить сама по себе, залейте файлы в неё и поправьте ссылки.
Ровно то же касается заданий, скопированных между играми.
===== Аудио и видео =====
**Звук** — mp3, m4a, ogg, wav до 5 МБ. Вставить проигрыватель можно кнопкой в панели редактора задания (рядом с кнопкой картинки) или руками, в режиме «Источник»:
**Видео** — своё можно, но только **mp4 и только до 5 МБ**. Ничего не пережимается, поэтому в этот предел ролик надо уложить самому. Разметку пишут руками:
Ролик с YouTube вставляется по-прежнему кадром — как [[authors_main:task_editor:basic#видео|описано в оформлении заданий]].
===== Картинки прямо из редактора текста =====
Кнопка картинки в панели редактора задания заливает файл туда же и по тем же правилам: те же типы, те же пределы, та же оптимизация и та же кнопка «Отмена». Отдельно идти во вкладку «Файлы» не нужно.
===== Кто может =====
Заливать и удалять файлы игры может её автор и администратор домена, в котором игра лежит. Чужой файл движок называет ненайденным, а не запрещённым.
У домена есть **своя** папка файлов, отдельная от игр, — она на странице наград в админке домена. Списки не пересекаются.
===== Смотрите также =====
* [[authors_main:task_editor:basic|Базовый редактор]] — как вставить картинку, аудио и видео в текст задания.
* [[authors_main:task_editor:advanced:inventory|Инвентарь игрока]] — картинки предметов и что делает префикс ''item_''.
* [[authors_main:task_editor:editor|Редактор игры]] — остальные вкладки и черновик.