Скрытые медали

Скрытые медали - два эпических бейджа, спрятанные на случайной странице блога и каталога программ. Юзер должен внимательно смотреть и кликнуть по медальке, когда найдёт. Раз в сутки медали перекладываются на новые случайные страницы.

📁 Геймификация 👁 101 просмотров 🔄 13 ч. назад

Что такое скрытые медали

Скрытые медали 🎖 - это гейм-механика «найди и кликни», которая поощряет внимательное чтение блога и просмотр программ. На сайте всегда лежат 2 уникальных медали на двух случайных страницах:

  1. Архивный детектив - epic-бейдж за нахождение медали в блоге
  2. Каталожный охотник - epic-бейдж за нахождение медали в каталоге программ

Каждая медаль выдаётся только один раз в жизни - первый кликнувший её юзер получает бейдж навсегда. Затем медаль автоматически перекладывается на новую случайную страницу.

Где появляется медаль

Блог-медаль

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

Каталог-медаль

Появляется в правом нижнем углу одной случайной страницы программы. Тоже с пульсирующей аурой.

Медаль показывается только залогиненным юзерам - анонимам не отображается. Это сделано чтобы:
- Бот не мог найти медаль через парсинг
- Юзер сначала зарегистрировался

Как получить медаль

Когда юзер видит медаль на странице:
1. Кликнуть по картинке
2. Сервер атомарно записывает медаль в user_achievements
3. Анимация: PNG «улетает» в верх экрана с эффектом
4. Появляется фиолетовый тост: «🎖 Архивный детектив! Получен скрытый бейдж»
5. Медаль исчезает с этой страницы и переходит на новую случайную

Важно: первый кликнувший выигрывает. Если юзер увидел медаль и медлит - её может перехватить кто-то другой.

Анти-чит

Система защищена несколькими уровнями:
- HMAC-токен на странице - юзер не может имитировать клик через прямой POST к API
- FOR UPDATE на запись медали - параллельные клики обрабатываются строго по очереди
- UNIQUE (userid, badgeslug) - один юзер не может получить одну медаль дважды
- Rate limit 1 клик в 30 секунд - защита от ботов
- Только залогиненный юзер может получить
- Атомарная замена - после клика медаль СРАЗУ переходит на новую страницу, нет окна гонки

Перетасовка раз в сутки

Если медаль не была получена за сутки, она автоматически переходит на новую случайную страницу через cron-задачу cron/secret-medal-shuffle.php (запускается раз в сутки в 04:30).

Это гарантирует, что:
- Медаль не «застревает» на одной странице на месяц
- Юзеры регулярно проверяют разные страницы
- Нет смысла зубрить «медаль на странице X» - завтра она будет в другом месте

Админ может вручную передвинуть медаль на новую страницу через /admin/secret-medals.php или сбросить счётчик нахождений для тестов.

Где смотреть статус

Свой профиль

/profile?tab=achievements - в категории «Скрытые медали» видно, какие из 2 медалей получены, и дату нахождения.

Админка

/admin/secret-medals.php показывает админу:
- На какой странице сейчас лежит блог-медаль
- На какой странице сейчас лежит каталог-медаль
- Сколько раз каждая медаль уже находилась за всё время
- Лог последних находок (юзер, время, страница)
- Кнопка «Перетасовать сейчас» - принудительный сдвиг на новую страницу

Стратегия для охоты

Для поимки медали:
1. Регулярно читай блог - открывай разные посты, медаль всегда на одном из них
2. Просматривай страницы программ через систему Эксперт - заодно и медаль найдёшь
3. Проверяй правый нижний угол - там она появляется
4. Смотри тосты в profile - если медаль уже у кого-то взята, можно увидеть в логах админа когда
5. После клика - не радуйся слишком долго - сразу проверь, появилась ли медаль на следующей странице

Многие юзеры узнают про скрытые медали только когда видят их в чужих профилях. Это нормально - медали действительно «секретные» в смысле «не рекламируемые».

📖 Связанные термины

← Все термины словаря