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

Простыми словами
Профиль — единственная страница opolyx, которую показывают кому-то другому, и она тихо ему врала. Уровень и опыт были настоящими, потому что они публичные, а вот сыгранные игры, победы, процент побед и серия побед показывали ноль всем, кроме вас самих, и коллекция карточек под ними оказывалась пустой. Игрок с парой сотен игр за плечами выглядел для всего остального сайта как человек, который ни разу не садился за стол.
Теперь все четыре числа настоящие для того, кто смотрит, а коллекция показывает карточки, которыми игрок действительно владеет. Счётчики сходятся и с таблицей лидеров, которую починили на той же неделе и по той же причине.
Коллекция карточек была невидимой дольше всего. Карточки выпадают за победы и за достижение узловых уровней, это самое близкое к тому, чем в opolyx можно похвастаться, — и полка была пуста для любого посетителя со дня запуска, так что единственное, ради чего коллекция существует, было единственным, чего она не могла.
Для тех, кому интересны детали
Все четыре числа считались перебором строк в браузере самого посетителя. Для публичных данных это нормально, для всего остального здесь — нет: таблицы игр отдают только те игры, в которых были вы, а инвентарь — только ваши предметы. Браузер задавал честный вопрос, получал честный ответ про другого игрока и печатал его как факт о ком-то ещё. Для незнакомца правильный ответ на вопрос «в скольких ваших играх я участвовал» действительно ноль.
Серию нашли последней, и в ней полезный урок. Более ранняя проверка уже заметила, что список матчей для посетителей обрезается, — и остановилась на этом, не дойдя до числа, которое из этого списка вычисляется. Серия была циклом ровно по этим обрезанным строкам, поэтому показывала ноль на каждом профиле сайта, включая профили игроков в длинной победной серии. Обрезанное чтение портит всё, что стоит ниже по течению, а не только то, что оно выводит на экран.
| Реальный профиль глазами посетителя | Было | Стало |
|---|---|---|
| Игры / победы / процент | 0 / 0 / 0% | 15 / 8 / 53% |
| Серия побед | 0 | 3 |
| Коллекция карточек | пусто | 7 карточек |
Итоги теперь берутся из публичных счётчиков, которые обновляются при подсчёте рейтинга игры, а карточки и серия — каждая из маленькой функции, отвечающей на один вопрос про одного игрока и ни на что больше. Открыть сами таблицы всем было бы короче и намного хуже: заодно наружу вышли бы все будущие предметы инвентаря и составы всех приватных игр. Сам список матчей по-прежнему только ваш — он просто больше не утверждает, что вы никогда не играли.
