* Исправлена недоработка, из-за которой триггеры, срабатывающие на каст определенных умений, не срабатывали при автоматическом использовании этих умений.
* Подкорректированы цены в Alt+B на Руну Евы. Есть вариант с возвратом к старым ценам, но с отключением работы руны на олимпиаде, т.к. цена скорректирована в связи с жалобами что руна слишком влияет на бои там, при этом слишком уж доступна.
* Для разрешения неопределенной ситуации с позицией в рейтинге для игроков, которые к моменту ввода рейтинга уже достигли максимального опыта и у них в итоге все три обычных критерия сортировки совпадают, а потому "дележка" позиций между этими игроками получается полностью случайной, добавлен доп. критерий, который проверяется только когда первые 3 не привели при сортировке к какому-то результату.
Данным критерием будет являться суммарное количество получаемого с мобов за сутки опыта (счетчик опыта сбрасывается в момент суточного расчета результатов рейтинга, т.е. в 6:30). Таким образом в приоритете при сортировке будут те из таких игроков, кто более активен в игре.
З.Ы. и кстати игроков с мест выше вашего вполне можно оттуда выбить, как минимум на время, ведь уменьшения опыта в случае смерти тоже учитываются при обновлениях данных для сортировки
Ну и теперь об очередном крупном обновлении - наконец-то реализованы рейтинги уровней игроков сервера
Основные детали об этом рейтинге:
- рейтинги показывают вашу информацию о том, какую позицию по уровню и опыту вы занимаете среди всех участвующих в этом рейтинге игроков;
- рейтинги разделены на три подрейтинга - общий рейтинг между всеми участниками (топ 150), рейтинг по расе (топ 100), рейтинг по классу (топ 100);
- так же можно посмотреть фрагмент каждого из трех видов рейтингов с личной позицией в нем, даже если вы не входите в топы;
- в дополнение есть два вспомогательных рейтинга, в которых отображаются позиции ваших соклановцев (если вы в клане) и позиции ваших друзей (если они у вас есть);
- в рейтинге участвуют все игроки, достигшие 85 уровня и получившие последнюю профессию, а так же заходившие в игру последние 30 дней;
- игроки, только получившие 85 уровень и последнюю профессию, или же имеющие нужный уровень и профессию, но зашедшие в первый раз за 30 дней, автоматически регистрируются в рейтинге с пометкой NEW и полноценно начинают в нем участвовать только при следующей суточной фиксации рейтинга;
- позиция в рейтинге определяется по данным основного класса и сортировка происходит по следующим критериям: сначала сравниваются уровни, при их совпадении - текущий опыт, при его совпадении - время получения уровня (с этим есть один нюанс, о котором будет написано ниже);
- так же каждый участник может посмотреть историю изменения его позиций в общем рейтинге за последнюю неделю (история фиксируется раз в сутки, в 6:30 по серверному времени);
- позиции в самом рейтинге обновляются раз в 15 минут (некоторые данные участников могут обновляться сразу как меняются, например имя, уровень и т.д.);
- если игрок меняет расу или класс, то перемещение из старого расового/классового рейтинга в новый произойдет в ближайшее обновление, т.е. максимум через 15 минут;
- фиксация рейтинга, а так же определение того, какие награды выдавать участникам на следующие 24 часа, определяется только раз в сутки, в 6:30 по серверному времени и тогда же и происходит забирание/выдача наград (о наградах будет написано ниже).
Выше упоминалось, что последним критерием при сортировках служит время получения уровня, но с этим есть один важный нюанс - до реализации рейтинга данная информация не требовалась и само собой не сохранялась.
Так что при совпадении уровней у двух игроков и количества опыта - приоритет будет у того, кто этих значений достиг до ввода рейтинга.
Ну а если у обоих сравниваемых игроков это произошло до ввода рейтинга, то тут уж как повезет - тут будет неопределенное поведение.
Как вариант еще по каким-то критериям сделать дополнительную сортировку, но пока идей по чему еще сравнивать нет.
---
Ну а теперь перейдем к информации о наградах за позиции в рейтингах.
Игроки, занимающие первое место в общем/расовом/классовом рейтингах получают над головой персонажа особую эмблему в порядке убывания важности: Rank 1, Race 1, Class 1. Если один и тот же игрок заработал в итоге несколько видов эмблем - у него отображается только самая важная.
Игроки, занявшие первые 100 мест в общем рейтинге, могут использовать в чате особые знаки в виде кубков рядом со своим именем, показывающие другим ранг персонажа: для мест 1-10 показывается 3 кубка, для мест 11-50 - 2 кубка, для мест 51-100 - 1 кубок.
Игроки, занявшие 1-10 места в общем рейтинге получают бафф "1-е Место в Рангах за Уровень на Сервере", занявшие 11-50 места - бафф "2-е Место в Рангах за Уровень на Сервере", занявшие 51-100 места - бафф "3-е Место в Рангах за Уровень на Сервере".
Игроки, занявшие 1-10 места в расовом рейтинге получают бафф "1-е место в Рангах за Уровень Среди <название расы>".
Игроки, занявшие 1-10 места в классовом рейтинге получают бафф "1-е место в Рангах за Уровень Среди <название класса>".
Все баффы ничем не снимаемы, не имеют времени и работают до следующей суточной фиксации рейтинга, после чего будут либо удалены, либо переналожены, в зависимости от изменения позиций игрока в рейтингах.
Детальную информацию о том, что дают те или иные баффы, расписывать уже не буду - это все можно посмотреть и прочитать в окне самого рейтинга.
Ну вот, вроде все основные нюансы рейтинга упомянуты.
В целом рейтинг уровней реализован полностью и должен в теории работать без ошибок.
Ну разве что опять что-то при тестировании реализации не было учтено.
- Исправлена ошибка в сервисе сохранения/восстановления аугментации в Alt+B - некоторые игроки не могли сохранять аугментацию при определенных условиях.
- Небольшие корректировки в рейтинге олимпиады - текущий ранг участников теперь фиксируется как предыдущий разово, при старте периода боев, а не при каждом обновлении рейтинга, как было до этого.
Т.е. проще говоря будет отображать как изменилась позиция в рейтинге от начале периода боев, а не за последние 5 минут.
- Как всегда много разных мелких правок в коде, связанных с разными оптимизациями и избавлением от разного устаревшего и не очень оптимального кода. Все это вы в целом и не заметите, только если при этом случайно не было сделано каких либо ошибок, что могут всплыть позже.