Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
3
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Сегодня напишу немного об управлении объектами в Construct 3.

1) Для всех объектов создаю 3 разных подкаталога:

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Каталоги с объектами.

  • В Interface у меня хранятся кнопки, окна, фоны и всё, что не участвует непосредственно в игровом процессе.

  • В Objects лежат объекты, составляющие основу игровых механик: персонажи, оружие, всё, что летает по игровому полю, а также массивы.

  • В Object Types кидаю поведения и плагины (Touch, Keyboard, AJAX и прочие вещи, не выносящиеся на игровое поле).

2) Объекты называю с заглавной буквы.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Объекты.

3) Количество однообразных объектов в проекте (кнопок, текстов, фонов и т.д.) стараюсь ограничивать насколько это возможно, но не более того.

4) Для различения однообразных объектов (кнопок, надписей и др.) добавляю им собственные переменные class, classSub, num, id.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Собственные переменные объектов.

Затем выбираю нужные объекты по их переменным.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Выбор нужного объекта по его переменной.

5) С помощью собственной переменной state включаю-выключаю отдельные кнопки, когда это нужно.

И потом отслеживаю, если у кнопки включена state = ”on”, то нажатие на кнопку вызывает реакцию.

Иначе ничего не происходит.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Использование собственных переменных кнопок для их игнорирования.

6) Для текстовых объектов использую несколько типовых имён:

  • TextButton - текстовая кнопка (часто располагается поверх пустой резиновой кнопки),

  • TextInfo - изменяющийся текст (таймеры, счётчики, очки, патроны и т.п.),

  • TextTest - тестовый текст - помогает отслеживать параметры игры при ошибках. Обычно он скрыт и включается по какой-то кнопке.

7) Для графических объектов использую типовые имена:

  • Button - кнопки,

  • Mask - маски,

  • Array - массивы,

  • Background - фоны и т.д.

Если нужно разнообразить - добавляю в конец имени уточняющие слова. На примере массивов:

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Названия массивов.

Так их проще вспомнить, если нужно подставить имя объекта в какую-то переменную.

Пока всё, что имею сказать по поводу объектов.


Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 5
[моё] Gamedev Браузерные игры Проект Порядок Объект Массивы Переменные Длиннопост Construct 3
0
0
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

6. Переменные - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Часть 6. Переменные.

1) Переменные всегда называю латинскими буквами с редкими вкраплениями цифр. Это даёт уверенность, что игра правильно всё поймёт и не создаст проблем из-за кириллицы в именах или я не перепутаю латиницу с кириллицей.

2) К переменным применяю «верблюжий» принцип camalCase: начинаются они со строчной буквы, а каждое следующее слово в ней - с прописной:

6. Переменные - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Construct 3, Переменные, Порядок

Верблюжий принцип.

3) Для каждой переменной подписываю её назначение. Иногда это очень помогает быстро вспомнить, зачем она вообще нужна:

6. Переменные - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Construct 3, Переменные, Порядок

Комментарии к переменным.

В этом плане считаю исключительно полезным навык слепой десятипальцевой печати (всеми пальцами, не глядя на клавиатуру). Пожалуй, я бы сказал, что это второй по важности навык после знания английского.

4) Никогда не создаю булевых переменных (boolean - триггеров true-false). Не нравятся они мне :)

А если быть точнее, их сложно преобразовать во что-то другое. К примеру, вчера мне казалось, что переменная mode будет переключать только 2 режима. А сегодня выяснилось, что их будет 3.

Чтобы не скакать потом по всему коду заменяя булеву переменную, я заранее делаю её строковой (string) и задаю ей одно из двух значений: on или off,

Почему не true и false? Так короче, легче менять одно на другое (on на off и обратно) и понятнее по смыслу (включено-выключено).

6. Переменные - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Construct 3, Переменные, Порядок

Строковые переменные вместо булевых.

5) Константы почему-то не использую. Пытался, но потом всё равно про них забываю. Поэтому пользуюсь только обычными переменными.

6) Большая часть переменных, как и большая часть событий у меня оказывается в листе common.

7) Список переменных в листе сортирую по алфавиту (латинскому), чтобы быстрее находить нужные.

6. Переменные - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Construct 3, Переменные, Порядок

Сортировка переменных по алфавиту.

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 2
[моё] Gamedev Браузерные игры Проект Construct 3 Переменные Порядок
0
2
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

5. Экраны и листы событий - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

В этой заметке вкратце покажу как управляю экранами и листами событий в Construct 3.

1) Экраны (они же макеты) всегда называю с заглавной буквы.

5. Экраны и листы событий  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Вкладки, Макет, Название

Названия экранов.

2) Листы событий - всегда с маленькой.

5. Экраны и листы событий  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Вкладки, Макет, Название

Листы событий.

3) Если лист событий относится к определённому экрану - у них одинаковое имя (разница только в регистре первой буквы).

Это позволяет сразу понять, что это за вкладка - экран или лист событий. И не съедается лишнее место в пространстве вкладки.

5. Экраны и листы событий  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Вкладки, Макет, Название

Вкладки с экранами и листами событий.

4) В отдельные листы событий выношу:

  • массивы (array),

  • обработку кнопок (menu),

  • обработку непрерывными действиями: бег персонажа, всякие ползунки, прокрутки и т.п. вещи (control),

  • тестовые кнопки и события (test),

  • столкновения (collisions),

  • обработку функций Вконтакте, Яндекса, Google (vk, yandex, google, gamePush),

  • мультиплеерные функции (photon),

  • прочие обособленные наборы событий,

  • общее для всех - выношу в лист common. Обычно он получается самый объёмный.

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

5. Экраны и листы событий  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Вкладки, Макет, Название

Вложенные листы событий.


Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 3
[моё] Gamedev Проект Браузерные игры Construct 3 Вкладки Макет Название
0
2
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

3. Управление текущими задачами - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

1) У меня часто бывает, что делаешь какую-то фичу в игре и тут в голову приходит, что хорошо бы сделать ещё вот это и вот это.

И начинаешь метаться, чтобы ничего не забыть.

Чтобы такие проблемы не возникали, пользуюсь досками с карточками (канбан-досками).

Что-то типа такого, но в электронном виде.

3. Управление текущими задачами  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Kanban, Разработка, Construct 3, Доска, Карточки, Порядок, Длиннопост

Канбан-доска из Википедии.

2) Как это работает?

- Появилась новая задача — быстро записал её в карточку, положил в колонку «Сделать» и забыл до поры до времени.

- Закончил текущую задачу — кинул карточку с ней в «Готово». Глянул, в список задач и взял следующую и перетащил в колонку «В работе».

- Решил поменять порядок задач и какие-то из них вообще выкинуть из плана? Нет проблем! Просто перетащил нужные карточки в другие колонки.

Таким образом, все задачи по проекту в любой момент перед глазами и можно сразу понять, что лучше сделать сейчас, а что отложить на потом.

3) Текущие задачи по личным проектам веду в kaiten.ru (раньше вёл в notion.so, но он закрылся для нашего региона). В Кайтене можно сделать удобную доску и оперативно перетаскивать выполненные задания между колонками.

Он даёт много бесплатных возможностей и не прогибается под санкциями :)

3. Управление текущими задачами  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Kanban, Разработка, Construct 3, Доска, Карточки, Порядок, Длиннопост

Кайтен.

4) Для рабочих проектов в компании мы используем сервис yougile.com.

3. Управление текущими задачами  - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Kanban, Разработка, Construct 3, Доска, Карточки, Порядок, Длиннопост

Юджайл.

Это ещё более удобная доска с карточками.

Дома её не использую, чтобы случайно не смешать проекты.

3) Колонок в электронных досках можно сделать сколько угодно.

Например, у нас на текущей рабочей доске есть колонки:

- Легенда: описания проектов с их цветовой «дифференциацией штанов» и ссылками на всё по проектам.

- Бэклог: сделаем когда будет время или никогда.

- Депрессия: начали делать, но возникли траблы. Возможно мы их когда-нибудь доделаем. Или нет.

- Спринт: хорошо бы сделать за неделю.

- Правки: это нужно исправить в первую очередь.

- В работе: то, что мы делаем сейчас.

- Тестирование: вроде готово, но нужно проверить.

- Готово: протестировали, залили и забыли как страшный сон.

- Галя, у нас отмена: сначала хотели сделать, потом прикинули и решили: «данунафиг».

Вот такая удобная штука. Очень, рекомендую этот способ ведения проектов.


Как обычно, Телеграм:
https://t.me/toyprogrammer


P.S. Всех с Днём Победы!

Кто бы что ни думал об этом празднике, без него нас всех бы здесь не было.

Показать полностью 2
[моё] Gamedev Проект Браузерные игры Kanban Разработка Construct 3 Доска Карточки Порядок Длиннопост
2
4
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

В этой серии заметок делюсь своими наработками по ведению проектов в Construct 3.

Часть 2. Хранение материалов


1) Сортирую все материалы, используемые в игре по соответствующим папкам.

Картинки - к картинкам, звуки - к звукам и т. д.

Свежайшая версия проекта в формате c3p у меня лежит в корне папки с игрой. Сохраняю в неё проект после каждого значимого изменения.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Структура папок с материалами.

2) В папке Документы лежат исходники, присланные заказчиком а также ключи для создания APK и прочие документальные вещи.

Их сортирую по дате получения.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка Документы

3) Картинки сортирую по назначению.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка картинки

4) Файл Всё вместе.svg в Картинках - исходник, в котором рисую векторные интерфейсные элементы для игры.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Типичное содержимое файла Всё вместе.svg.

5) В папке ! Интерфейс храню всякие кнопки-иконки и прочие маски.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка Интерфейс.

6) Звуки и музыку обычно не сортирую - их редко бывает больше пары десятков файлов.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка Звуки.

7) В папку Резервные копии по окончании рабочего дня копирую исходник игры (файл c3p), и файл Всё вместе.svg доработанные за день.

Таким образом, всегда есть вчерашняя резервная копия, на случай, если за день что-то сильно накосячил (несколько раз спасало почти готовые проекты).

Сортировка в этой папке - по датам.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка Резервные копии.

8) В папку Тестовые версии скидываю то, что хочу закинуть на сайт. Также сортирую по датам.

2. Хранение материалов - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Игры, Construct 3, Хранение данных, Порядок, Файлы и папки, Резервное копирование, Длиннопост

Папка Тестовые версии.

Пожалуй, это все тонкости, которые использую для хранения материалов игр.

В следующей части кратенько опишу свой способ сохранения идей для будущих и текущих игр.

Как обычно, Телеграм:
https://t.me/toyprogrammer

P.S. Пикабу вчера напомнил, что у него тоже есть свой раздел с играми. Сегодня я отправил туда несколько своих игрушек на предмет их размещения в разделе. Посмотрим, что ответят модераторы. Скорее всего шансов мало, но надеюсь, что они есть.

Показать полностью 7
[моё] Gamedev Браузерные игры Проект Игры Construct 3 Хранение данных Порядок Файлы и папки Резервное копирование Длиннопост
0
3
ru1000
ru1000
3 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

1. Создание проекта - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

В этой серии заметок поделюсь своими наработками по ведению проектов в Construct 3.

Некоторые из них наверняка будут спорными для новичков, а некоторые - для настоящих программеров (себя к таким не отношу).

Но на данный момент использую именно такой формат упорядочивания.

Впрочем - он тоже периодически меняется, когда встречаю какую-то интересную фишку в чужих проектах.

Пишите в комментариях кому есть что добавить.

Итак, создание проекта:

1) Если проект типовой (или даже если не совсем типовой, но в портфолио есть хоть отдалённо похожий) - копирую старый проект и переименовываю, чтобы не заморачиваться мелкими настройками.

Потом постепенно копирую в него отработанные приёмы из предыдущих проектов, но по возможности проверяю, не изменились ли используемые функции?

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

К примеру, поведение Pin, скопированное из старого проекта имеет несколько иные настройки, чем у созданного заново.

А вместо старого отдельного поведения Rex_MoveTo появился стандартное поведение MoveTo.

2) Обязательно заполняю описание проекта (в настройках редактора можно задать некоторые из них по умолчанию).

1. Создание проекта - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Разработка, Программа, Construct 3, Проект, Версия, Порядок, Длиннопост

Параметры проекта.

3) Всегда задаю и перед каждым экспортом обновляю версию проекта.

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

А браузеры просто обожают всё кешировать и часто показывают устаревшую версию игры.

1. Создание проекта - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Разработка, Программа, Construct 3, Проект, Версия, Порядок, Длиннопост

Программно выводим версию проекта.

1. Создание проекта - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Разработка, Программа, Construct 3, Проект, Версия, Порядок, Длиннопост

Как версия выглядит в игре.

4) Всегда сразу отключаю Worker в продвинутых настройках проекта.

1. Создание проекта - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Разработка, Программа, Construct 3, Проект, Версия, Порядок, Длиннопост

Worker отключен.

Эта зараза умеет запускать события "с пятого на десятое", в результате чего некоторые события выполняются до того, как выполнятся предыдущие.

Возможно я просто не понимаю его принципа, но мне без него лучше.

Также с ним не работает очень полезный плагин GamePush.

Это то, что касается создания нового проекта.

Завтра рассмотрим вариант хранения материалов игры, чтобы ничего не терялось и всё было доступно.

Как обычно, Телеграм:
https://t.me/toyprogrammer

P.S. Поиграть в игру, которая послужила источником скриншотов можно здесь:

https://dharmagames.ru/games/15/15puzzle/index.html

Показать полностью 4
[моё] Gamedev Браузерные игры Разработка Программа Construct 3 Проект Версия Порядок Длиннопост
0
2
ru1000
ru1000
4 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

Платформер выходного дня в Construct 3⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Сегодня ради интереса (и благодаря праздничному дню) запилил простенький платформер в полностью бесплатной версии Construct 3. Было интересно, много ли удастся впихнуть в бесплатные лимиты редактора.

В целом, впихнулось почти всё необходимое для мини-игры.

Поиграть уже можно здесь:

https://dharmagames.ru/games/platformer/mini-platformer/index.html

Платформер выходного дня в Construct 3 Construct 3, Игры, Браузерные игры, Платформер, Проект, Gamedev, Длиннопост

Начало уровня.

Лукаво не мудрствовал, взял за основу для идеи первый уровень из раннера, который дорабатывал несколько лет назад на заказ.

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

Основные подробности проекта:

1. Использовано 17 событий из 25. Никакого JavaScript и дополнительных плагинов, всё только "из коробки".

Платформер выходного дня в Construct 3 Construct 3, Игры, Браузерные игры, Платформер, Проект, Gamedev, Длиннопост

Фрагмент кода.

2. В игре 2 слоя - объекты и интерфейс.

3. Один вид врагов, которым нужно прыгать на голову, чтобы их победить.

4. Один босс - тот же враг, только покрупнее, покрепче и ускоряется после каждой атаки игрока.

Платформер выходного дня в Construct 3 Construct 3, Игры, Браузерные игры, Платформер, Проект, Gamedev, Длиннопост

5. Использовал русифицированную версию Construct 3, чтобы новичкам было проще разобраться.

6. Из врагов выпадают монетки, которые подсчитываются.

Платформер выходного дня в Construct 3 Construct 3, Игры, Браузерные игры, Платформер, Проект, Gamedev, Длиннопост

7. У игрока 3 жизни.

8. Графику почти всю взял готовую (только небо и землю нарисовал сам).

9. Звуки и музыку взял готовые из предыдущих своих игр.

10. Игра весит около 2 Мб, из которых 1.4 Мб - музыка Кевина МакЛауда.

11. Управление как клавиатурой, так и кнопками на экране.

12. Проект завёл в браузере Edge.

13. Исходник проекта можно скачать здесь:
https://dharmagames.ru/games/platformer/mini-platformer/mini-platformer.c3p

В целом, результат мне показался неплохим для бесплатной версии.

С некоторой натяжкой можно даже использовать как проект на заказ для нетребовательного заказчика. Поменял картинки - "и алга" :)

На всякий случай ссылка на телеграм: https://t.me/toyprogrammer

Показать полностью 4
[моё] Construct 3 Игры Браузерные игры Платформер Проект Gamedev Длиннопост
9
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии