История версий движка
Релизы игрового движка "Супернова"
[#] Модуль "Капитаны"Требуется СН не ниже 36a0.24Капитан - это опытный командующий, который летает с флотами и за счет более тонкого управления флотами улучшает эффективные характеристики всех кораблейНайм и управление Капитанами осуществляется через пункт меню "Капитаны" (сразу под "Наемниками")Каждый Капитан привязан к определенной планете или луне. Нельзя иметь двухКапитанов на одном небесном теле. Капитан, летящий с флотом, все равно считается привязанным к планетеКапитана можно перевозить с одной планеты на другую миссией "Передислокация". При этом на время перелёта Капитан считается привязанным сразу к обоим планетам - стартовой и финишнойС флотом можно отправить только одного КапитанаПри гибели флота Капитан так же погибает. Под "гибелью флота" подразумевается уничтожение всех кораблей флота. Это верно как для атакующих флотов, так и для флотов, стоящих в удержанииКапитан на планете не участвует в защите планеты при атаке - этим занимается Фортификатор. Зато при полном уничтожении всего планетарного флота такой Капитан не погибнетЗа каждый выигранный простой бой (САБы и миссия "Уничтожить" не считаются) Капитан атакующего флота получает 1 пункт опыта. За "победы" над неактивными игроками опыт не начисляется. Так же не начисляется опыт, если бой закончился выигрышем атакующего за 1 раундКапитаны всегда улучшают характеристики кораблей своего флота - даже если участвуют в бою, за который они не получат опыта: атака на неактивных игроков, удержание, САБ, уничтожение луны и т.д.При наборе определенного количества опыта Капитан получает новый уровень.Чем выше уровень - тем больше опыта нужно для получения следующего уровняПовышение в уровне дает возможность улучшать умения Капитанов. Каждый уровень умений дает 1% к базовому значению соответствующей характеристикиУмения Капитана включают бонусы к щитам, броне и атакеУровни Капитана вкладываются в умения один раз и навсегда - поэтому заранее тщательно планируйте развитие своего КапитанаУровни Капитанов указываются в списке юнитов на Обзоре Империи. На заднем фоне ячейки с уровнем выводится прогресс-бар развития Капитана с цветовым кодированием:
- Пустая ячейка - Капитан не нанят, либо только что получил уровень
- Красный прогресс-бар - до следующего уровня осталось больше 50% опыта
- Оранжевый - не меньше 50% опыта, но меньше 80%
- Желтый - не меньше 80% опыта
- Зеленый - в следующем бою Капитан получит новый уровень
В списке флотов на странице "Флоты в полёте" и для своих флотов на странице "Обзор планеты" если во флоте есть Капитан перед количеством кораблей во флоте высвечивается "*", а в попапе состава показывается его уровень
[#] Модуль "Продвинутый чат"
Требуется СН не ниже 36a1.7
Встроенная система команд с поддержкой алиасов команд
Встроенная система помощи по командам чата - команда /help
Добавлен список игроков в чате с дополнительными иконками статуса и командами управления для админов
Возможность игрокам управлять своим состоянием видимости в чате - команда /invisible. Администрация сервера (authlevel > 0) всегда видит невидимок
Возможность отправлять приватные сообщения другим игрокам - команда /whisper. Приватные сообщения выделяются специальным образом, видны во всех каналах и сохраняются в истории чата. В приватных сообщенях нельзя употрблять форматирование цветом
Администраторы имеют возможность запретить игроку писать в чат на определенный срок или вернуть такую возможность - соответственно, команды /mute и /unmute. Запрет распространяется на все каналы и на возможность писать личные сообщения. Соответствующая иконка в списке игроков лишает его права голоса на 1 час
Администраторы имеют возможность блокировать и разблокировать игроков прямо из чата - соответственно, команды /mute и /unmute. Иконка в списке игроков банит его на 1 неделю
Максимальное время нахождения игрока в списке онлайн совпадает с таймаутом чата на странице сервера - т.е. в списке онлайн игрок будет виден еще некоторое время после выхода из чата
[!] UBEv4
Написан с нуля боевой движок и боевые отчеты
Особенности подготовки к бою:
- Бой теперь считается не по $time_now, а по времени прилета флота - на случай, если бой сильно отложенный. Например, при сбоях движка или низкой активности сервера. Так будут отработаны корректно все удержания в правильное время
Особенности хода боя:
- Броня не регенерируется между раундами
- Если броня упала ниже 75% - корабль имеет шанс взорваться равный проценту от общего здоровья
- Новый механизм боя: подлов атакующего или sneak defense. Если в САБе и в удержании участвуют флоты одного и того же игрока, то прилетающие флоты этого игрока будут сражаться на стороне защитника. Аккуратно смотрите, кого приглашает в САБ. Хе-хе
Особенности подведения итогов боя:
- Если в бою участвует хотя бы один флот Админов с любой стороны - лом не выпадает ни с кого!
- Возвращение обломков с оборонных сооружений не производится
- В миссии "Уничтожить" шанс уничтожения флота от взрыва одного из кораблей при попытке уничтожить луну теперь так же зависит от количества гравидвигателей во флоте - чем их больше, тем шанс выше
- В миссии "Уничтожить" корабли могут взорваться даже в случае успешного уничтожения луны. Как и раньше, подрыв кораблей с гравидвигателем уничтожает весь флот
- Теперь в рейдовый опыт засчитываются исключительно одиночные атаки. Ни "Удержание", ни "САБ" не засчитывается. Т.е. вообще не засчитываются - вне зависимости от результата боя
- Теперь атаки на неактивных игроков ("i-шки") не приносят рейдовый опыт
- Количество свободных полей на луне зависит от её размера и определяется по формуле Размер/1000 с округлением вверх до целого
- Изменен расчет поля обломков. Теперь на орбите оказывается от 30% до 70% выброшенных за борт ресурсов и от 20% до 40% обломков кораблей. В детерминированном симуляторе процент обломков на орбите всегда равен 30%, а обломки, выброшенные из трюма всегда составляют 50% от потерь
- Шанс уничтожения луны теперь всегда лежит в пределах 1%-99%
Боевой отчет теперь состоит из трёх частей: "Основная информация о бое", "Боевые потери" и лог раундов
- "Основная информация о бое" показывает:
- Время проведения боя (если доступно)
- Место боя (если доступно) - координаты планеты, её тип и имя
- Результат боя (выигрыш атакующего, ничья, проигрыш атакующего)
- Обломки на орбите
- Шанс образования луны и результат такой попытки
- (Для миссии "Уничтожить") Состояние кораблей с гравидвигателями по итогам боя. Шанс уничтожения луны оставшимися кораблями и результат такой попытки. Шанс взрыва кораблей и итог миссии
- Раздел "Боевые потери" показывает:
- (На планетах) Количество восстановленных боевых сооружений
- Общие потери боевых единиц каждого из участвующих в бою игроков. Если у одного игрока участвовало в бою несколько флотов - будут показаны суммарные потери по всем флотам. Это верно для всех параметров в этом разделе. Для планетарной обороны в потери не включаются восстановленные единицы
- (В случае победы атакующих) Количество ресурсов, вывезенных с планеты. Для планеты это будет положительное число, для атакующих флотов - отрицательное
- (Для флотов) Количество ресурсов потерянных из-за уменьшения емкости трюмов вследствии уничтожения части флота. Эти ресурсы рассматриваются как "боевые потери" - они плюсуются к обломкам на орбите и к потерям в пересчете на ресурсы
- Общие потери в пересчете на ресурсы. Включает стоимость боевых единиц на момент боя, вывоз с планеты и ресурсы, потерянные из-за уменьшения трюмов
- Общие потери в ресурсах в пересчете на металл по курсу Черного Рынка на момент проведения боя. Писькомерка для сравнения
- "Лог раундов" показывает результаты расчета каждого раунда для всех флотов
- Показывает координаты и тип планеты, с которой прилетели флоты атакующих/защитников
- Расширено количество информации о боевых подраздеениях Добавлена информация о "Пробое" и "Уроне". "Пробой" - атака, которая пришлась на щиты и была ими поглощена (или пропущена - см. ниже). "Урон" - атака, которая пришлась на броню
- Цветовое кодирование информации о подразделениях:
- Зеленый означает, что вся атака в раунде поглощена щитами
- Желтый - часть атаки пробила щиты ("пробой") и нанесла урон по броне, но при этом ни одна боевая единица не уничтожена
- Оранжевый - один или более боевых единиц уничтожено
- Красный - все оставшиеся боевые единицы уничтожены в этом раунде
- Число в скобках в столбце потерь - количество боевых единиц, взорвавшихся в раунде из-за фатальных повреждений
В боевом отчете координаты планет являются ссылками на Вселенную
Доработан симулятор для поддержки изменений в UBEv4:
- Стандартный режим работы симулятора - полная определенность результатов в зависимости от начальной конфигурации (галочка "Симуляция" включена)
- Добавлен второй режим работы - недетрминированный симулятор (галочка "Симуляция" отключена). В этом режиме работы проводится полная симуляция боя (включая образование луны) с применением генератора случайных чисел - т.е. так, как происходил бы обычный бой. В этом режиме результаты могут сильно отличаться от симуляции к симуляции. Так же в этом режиме происходит запись боевого отчета с результатом симуляции в БД
- В стандартном режиме если шанс образования луны больше 1 всегда образуется луна со средним размером для данного шанса
[+] Меню
Редизайн меню
Изменен порядок расположения пунктов
Высота пункта меню увеличена до 16 пикселов
Добавлены иконки. Размер иконки ограничен 14 пикселами в высоту
[~] Чат
Добавился новый BBCode "s" - зачёркнутый текст
В чате Альянса в нике участника теперь не указывается Альянс
Переформатирован вывод списка смайлов. Список смайликов теперь генерируется автоматически из всего доступного списка
При открытии окна чата курсор позиционируется в строку набора сообщения
Реформатирование HTML-кода страницы чата
Переделан в preMVC
Три файла чата интегрированы в один
[~] Новости
Количество новостей ограничено 20-ю самыми свежими
На странице Обзора планеты добавлена подсказка как закрыть окно со свежими новостями
[~] Флоты
Изменены ограничения на отправку Шпионов. Их можно посылать в одиночку в миссии Шпионаж, Передислокация и Транспорт. Во все остальные миссии Шпионов тоже можно отсылать - но только в сопровождении других кораблей
[%] Альянсы
Исправлена надпись при отправке письма членам Альянса
[%] Обзор Империи
Исправлена пропажа индикации количества строящихся зданий
Исправлена ошибка смещения фона для производящих зданий
[%] Флоты/Фаланга
Исправлена ошибка сканирования пустого места во Вселенной
[%] Навбар
Изменена разметка навбара, что бы его не перекашивало в случае вывода блока информации до него
Исправлена ошибка неправильного цветового кодирования остатков энергии в планетбаре
Исправлена ошибка смены планеты на preMVC-страницах
[%] Исследования
Добавлен патч, исправляющий багоюз на медленных MySQL серверах
[%] Чёрный Рынок
Исправлена несовместимость с Opera 12.x
Исправлена уязвимость в Скупщике лома
[#] Модули: Расы
Шесть фиксированных рас: земляне, луниты, меркурианцы, венериане, марсиане, республиканцы
Иконка расы отображается в чате, в статистике, в попапе информации об игроке во Вселенной и на странице Императора. Удержание курсора над иконкой расы вызывает тултип с её названием. Клик - открывает страницу с описанием всех рас
Каждая раса имеет собственные бонусы. Бонусы рас действуют сразу же после выбора родного мира - не нужно, например, исследовать техи, что бы получить к ним бонус
Раса выбирается после регистрации на странице Императора
Первый выбор расы производится бесплатно, каждая смена расы стоит 100.000 ТМ
Описание текущей расы доступно на странице Императора. Там же есть ссылка на описание всех рас в игре с указанием их символов
[#] Модули: Расовые юниты - требуется наличие модуля "Расы"
Шесть уникальных юнитов - по одной каждой из рас:
Земная "Лень" - боевой солнечный спутник
Лунная "Зависть" - легкий бомбардировщик
Меркурианское "Обжорство" - емкий переработчик
Венерианский "Гнев" - истребитель-перехватчик
Марсианская "Гордыня" - усовершенствованный линейный крейсер
Республиканская "Жадность" - боевой транспорт
[!] Телепортация планеты - новая возможность, доступна на странице управления планетой
Телепортация может производится только на свободное место - там, где нет ни планет, ни лун, ни обломков, включая уничтоженные объекты
Телепортация перемещает в новые координаты планету вместе с флотами, находящимися на орбите планеты
Если у планеты есть луна - она так же перемещается в новые координаты вместе с флотами
Телепортация невозможна, если в окрестностях планеты есть какая-то активность флотов (т.е. есть флоты, имеющие в качестве точки отправления или назначения саму планету, луну или поле обломков)
После телепортации необходимо выждать некоторое время перед следующей телепортацией - нарушенная метрика пространства вокруг планеты должна нормализироваться
Стоимость телепортации и таймаут перед следующим прыжком задаются в таблице `config` соответственно переменными 'planet_teleport_cost' (по умолчанию - 50.000 ТМ) и 'planet_teleport_timeout' (по умолчанию - 1 сутки)
[!] Перенос столицы - новая возможность, доступна на странице управления планетой
Теперь любая планета может быть назначена столицей
Стоимость переноса столицы по умолчанию составляет 25.000 ТМ. Она задается в таблице `config` переменной 'planet_capital_cost'
[!] МПР
Изменение алгоритма ракетного удара
Алгоритм ракетного удара теперь не привязан к численным значениям идентификаторов юнитов и сильно оптимизирован по скорости
Теперь при атаке МПР учитываются щиты оборонных сооружений. Это должно слегка уменьшить эффективность ракет и повысить живучесть защитных сооружений с большим количеством щитов
Теперь при ракетном ударе рандомизируются параметры атаки, брони и щитов у соответствующих юнитов. Границы такие же, как и для сражений флотов - от 80% до 120%
В результате изменений в алгоритме существенно повысилась живучесть ПЗ при ракетном ударе
Добавлена поддержка усиления залпа для МПР
[!] Переработка
Полностью переделана работа с полем обломков
Полностью переписан алгоритм запуска переработчиков
В попапе вместе с абсолютными теперь показываются и относительные значениями в процентах
В попапе добавилось три строки:
1. Строка "В полете" показывает емкость трюмов переработчиков пользователя, которые уже летят на данное поле
2. Строка "На орбите" показывает емкость переработчиков на орбите текущей планеты или луны
3. Строка "К переработке" показывает сумму двух предыдущих строк
На основном экране Вселенной к иконке обломков добавлена индикация процентного значения из строки "В полете". Она имеет цветовое кодирование:
1. Зеленый цвет означает, что прибывающие флоты игрока полностью переработают поле обломков на ресурсы
2. Желтый цвет означает, что к полю летит некоторое количество переработчиков, которых не хватит что бы целиком переработать обломки, но на текущей планете есть достаточно переработчиков, что бы полностью обработать поле
3. Оранжевый означает, что к полю летит флот иргока с переработчиками, но их не хватит на полную обработку обломков, даже включая те корабли, что находятся на орбите
4. Красный цвет значит, что к полю обломков не летит ни одного переработчика игрока
[!] Статистика
Теперь можно управлять появлением игроков в статистике и рекордах. Для этого на странице настроек сервера появились дополнительные настройки. Они размещаются в разделе "Статистика и рекорды"
Отключение настройки "Прятать админов" добавит в статистику и рекорды всех пользователей с authlevel > 0. По умолчанию она включена
Настройка "Прятать игроков" позволяет указать через запятую перечень ID игроков, которые не будут участвовать в статистике и рекордах. Это может быть полезно для создания NPC - ботов или игроков, которые исполняют их роли
Так же в этот раздел вынесена настройка расписания автоматического обновления статистики. ВНИМАНИЕ!!! КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ МЕНЯТЬ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ!!!
Добавлена опция "Скрывать ссылки на ЛС". При её включении в таблице статистики не показывается URL на создание личного сообщения игрокам
Теперь переход по определенной позиции (например со страницы Вселенной) скроллирует страницу сразу на эту позицию
Немного уменьшен размер страницы статистики
[!] MVC
Базовая поддержка MVC - встроенная система моделей и видов
Все страницы, переделанные под MVC, перемещены в /includes/pages
[!] Рендерер имен
Добавлен механизм рендеринга имени пользователя
Чат, статистика, Вселенная и страница Императора теперь используют общий механизм рендеринга имени пользователя
[!] Чат
Переписан чат
Чат теперь инкрементальный - с сервера передается не всё содержимое чата, а только новые сообщения. Чат корректно работает когда у игрока открыто несколько окон с чатом
Исправлена проблема со скроллированием чата в Chrome v20+
Теперь при отключении чата по таймауту содержимое окна не стирается, а в него добавляется соответствующее сообщение. Так же прячутся элементы ввода: выбор цветов, строка сообщения, кнопка "Отправить" и панель смайлов
Основное окно чата переписано под preMVC
Новый код чата (как JS, так и PHP) заметно компактнее, аккуратнее и быстрее старого
Увеличена длина поля для ника в чате
[!] Дерево технологий
Полностью переписано дерево технологий (бывш. techtree.php)
Рядом с названиями юнитов там, где это имеет смысл, отображаются их уровни в Империи/на текущей планете
Теперь вместо полного уровня с учетом бонусов отображаются отдельно базовые уровни и отдельно бонус к ним
Добавлена поддержка дополнительных требований к строительству юнитов (например - модуля расовых юнитов)
[!] Заметки
С нуля написаны заметки. Что еще сказать?
[!] Друзья
Страница друзей написана с нуля
Теперь подробно сообщается обо всех ошибках и результатах операций с заявками
В личную почту отправляются сообщения по приходу, принятию и отверганию заявки, а так же при разрыве дружеских отношений
Цветовое кодирование статуса друга: зеленый - онлайн, желтый - бездействие от 5 до 15 минут, оранжевый - оффлайн, красный - оффлайн более суток
[!] Модули
Поддержка ali_ally_player 12a0
Поддержка player_premium 1b0
[!] Новапедия
Полностью написана с нуля страница информации о юнитах
Теперь в Новапедии показываются требования для постройки/исследования юнита
Теперь для корабля показываются данные для всех типов двигателей, которые возможно на него установить
Улучшено отображение информации о кораблях и обороне
[!] Поиск
Полностью переписан поиск
Добавлена подсказка
Добавлена сортировка по Альянсу, имени игрока, имени планеты
Настройка сервера "Скрывать ссылки на ЛС" теперь распространяется и на результаты поиска
[!] Документация
Вся документация сконвертирована в UTF-8
[+] Меню
Добавлен пункт меню "Тёмная материя"
Добавлена возможность добавления иконки к пункту меню. Иконки берутся из подкаталога 'icons' текущего скина
Добавлена прямая поддержка CSS-стилей для элементов меню
Под логотип сервера в ALT вместо 'supernova.ws' подкладывается имя сервера
[+] Обзор Империи
Значительно оптимизирован HTML-код
Размер HTML-кода уменьшен на величину от 30% и в отдельных случаях до 80%.
Среднему игроку оптимизация даст уменьшение размера загружаемого файла на 40-50%% (включает так же выигрышь от оптимизации Списка планет - см.ниже)
В колонку "ИТОГО" добавлена сумма по строящимся и прибывающим на планеты юнитам
Теперь юниты всегда групируются согласно их принадлежности. Например, при подключении модуля расовых юнитов они добавляются в категорию "Флот", а не как ранее в конце таблицы
[+] Список планет
Значительно оптимизирован HTML-код
В Списке планет убрана иконка, отвечающая за исследование вследствие полной бессмысленности
[+] Реклама
Добавлена возможность управлять мета-тегами 'description' и 'keywords' без редактирования темплейта! Их содержимое хранится в таблице `config` в полях `adv_seo_meta_description` и `adv_seo_meta_keywords` соответственно
[+] Модули
Система модулей переписана с учетом базовой поддержки MVC
Автоматическая загрузка языков
[+] Планетарные врата
Интерфейс переделан по примеру страницы "Флоты на орбите"
[+] Вселенная
Шаблоны попапов легенды, планет, лун, обломков, игроков и альянсов вынесены из JS-скрипта в шаблон страницы
Убрано количество летящих флотов - эта информация есть в навбаре
Полностью переписана работа AJAX-части, отвечающей за отправку шпионов, переработчиков и ракет
Количество переработчиков теперь включает все виды кораблей, которые могут перерабатывать обломки
Интерфейс запуска ракет использует группу защитных сооружений, а не хард-кодед перечень, как было раньше
В попап легенды добавлены расшифровки для иконок действия
В попапе планеты показывается её диаметр
В попапе луны миссия "Уничтожить" показывается только если на текущей планете игрока есть ЗС
Из попапа игрока убраны ссылки - все, что можно было сделать по ссылкам, можно теперь
Добавлено новая иконка действия - "Статистика". Её тултип показывает статистику игрока
Расширена подсказка
[+] Смайлы
В чат добавлены следующие смайлы: nea, ups, quote, shout, sorry, spiteful
[~] Обзор планеты
Переписана процедура отсылки переработчиков
Теперь выводится результат отсылки переработчиков
[~] На странице "Тёмная материя" дополнен список возможного использования ТМ и проставлены ссылки на соответствующие страницы
[~] HTTPS
Теперь СН нормально работает и по HTTPS протоколу
[~] Император
Со страницы убраны баннер и юзербар
[~] UBEv3
Улучшена поддержка залпового огня
[~] Юниты/Корабли
Небольшой ребаланс кораблей
Сверхновая - атака уменьшена на порядок. При этом боевая эффективность корабля изменилось незначительно, благодаря изменению коэфициента усиления залпа. Немного уменьшилась эффективность против наземной обороны и легких кораблей и увеличилась эффективность против средних кораблей
Бомбардировщик: понижена эффективность против ионных орудий и повышена - против плазменных
[~] Исследования
Добавлена индикация бонусных уровней (например, от премиума) на страницу исследований
[~] Наемники
Добавлена индикация бонусных уровней (например, от премиума) на страницу наемников
[~] Стили
Цвет бонусов изменен с "yellow" на "gold" - это даст возможность отличать их от, например, прибывающих на планету юнитов
[~] Локализация
К эффектам Технолога и Фортификатора добавлена информация о добавлении слотов к очередям
[~] Флот
Полностью локализована страница приглашения в САБ
[~] Регистрация
Изменено сообщение при регистрации игрока
[~] Тёмная Материя
Немного переработан интерфейс страницы
[~] Админка/Утилиты
В шифрование паролей добавлен генератор паролей
[~] Инициализация
Изменен алгоритм определения корневого каталога СН. Теперь движок корректно работает в каталогах-симлинках
[%] Фаланга
Теперь нельзя сканировать удаленную планету
[%] Локализация
Исправлено описание фаланги
Исправлена ошибка чтения информации о локализации
Небольшая правка опечаток в русской локализации
[%] Альянсы
Исправлена ошибка отображения полей информации Альянса при наличии лого и отсутствии внешнего текста Альянса
[%] Вселенная
Исправлена опечатка в легенде
Исправлена ошибка с перебросом по координатам [1:1:1] при выборе планеты из выпадающего меню
[%] Обзор планеты
Добавлена проверка на уровень губернатора при его отображении - если вдруг при прямых манипуляциях в базе у планеты есть ИД губернатора, но нет его уровня. В нормальных условиях такого произойти не может
[%] Флот
Исправлена ошибка отправки корабля, если его ID больше 300 или меньше 200
Теперь невозможно пригласить в САБ игрока, на которого летит этот САБ
[%] UBEv3
Исправлена ошибка с определением кораблей с ID > 300 как защиты и их восстановлением. Ошибка проявляется только в сторонних модулях
[%] Альянсы
Исправлена проблема с отсылкой сообщений всему Альянсу
[%] Корабли
Исправлено нулевое потребление некоторых юнитов (в частности - шпионского зонда)
[@] Темплейты
Рендерер страницы теперь подхватывает заголовок страницы, если он есть - переменная PTL {PAGE_HEADER}
Содержимое переменной $template_result автоматически загружаетя в темплейт в файле index.php
Файл темплейта _result_message автоматически подгружается при рендеринге темплейта, если в структуре переменных темплейта есть массив 'result'
[@] Модули
Изменена процедура инициализации - модули теперь грузятся до проверки наличия страниц. Это сделано на случай, если модуль добавляет свои собственные страницы как, например, модуль Премиума и модуль Рас
Теперь можно указывать в качестве страницы загрузки файла локализации пустое множество '' - файлы в этом массиве будут загружаться всегда
Поддержка дерева зависимости модулей - теперь можно делать модули, зависящие от других модулей
Автоматическая загрузка зависимых модулей в правильном порядке
[@] Код
Из файла vars.php выделены три отдельных файла со структурами, боевыми юнитами и всеми остальными
Так же добавлена дополнительная служебная информация для того, что бы в симуляторе не пропадали защитные сооружения при добавлении новых юнитов через модули
Убраны неиспользуемые данные "скорострела"
Из информации о боевых юнитов убраны ненужные данные о единичных усилениях
Численные значения для защитных сооружений и ракет заменены везде на константы
Везде из текста убраны ссылки на переменную $GLOBALS для поддержки рефакторинга в IDE
Библиотека "tw-sack.js" больше не используется - она заменена на jQuery
Исправлена очепятка в названии константы технологии ионного двигателя
Убран неиспользуемый код "скорострела"
js_safe_string() теперь корректно работает со строками, где есть перевод строки, включая Линуксовские и Маковские форматы файлов
sn_function_call теперь корректно отрабатывает несуществующие функции
Добавлена функция sn_get_groups()
eco_bld_tech.php теперь не использует $sn_data
Оптимизирован код Альянсов
Все страницы интерфейса игроков переписаны без использования $parse
Теперь в doquery() префикс {{table}} не используется и не обрабатывается
Страницы login.php, phalanx.php переписаны без использования $parse
JS: В объявлениях скриптов все конструкции language="javascript" заменены на type="text/javascript"
Теперь движок может работать с неограниченным количеством типов кораблей-переработчиков
[@] Меню
Заменены типы элементов меню на "lang" там, где это было возможно
Стандартное меню вынесено из файла template.php в includes/vars_menu.php
Парсер меню теперь понимает вложенные конструкции и константы для типа меню 'lang' - т.е. конструкции вида 'info[STRUC_MINE_METAL][description]'
[@] MVC
Частичная поддержка структуры MVCv2 в init.php
Добавлена поддержка анонимных MVC-страниц в common.php
Добавлена поддержка MVC-страниц на страницы логина/регистрации
[#] Админка: Редактирование характеристик планеты
Модуль admin_planet_edit_extra v1c0
В админке можно менять основные характеристики планеты: название, изображение, размер, температуру, губернатора и его уровень, количество обломков на орбите
[#] Покупка ТМ: Модуль платежной системы XSolla
Модуль payment_xsolla_currency v1b0
Реализован протокол XSolla "Виртуальная валюта" (без отката платежей)
Поддержка плагина XSolla PayStation
[#] Премиумный аккаунт
Модуль player_premium v1a2
Премиумный аккаунт покупается игроком за ТМ
Имеется 5 уровней премиума
Премиумный аккаунт дает бонус, эквивалентный своему уровню, к уровням технологий и Наемников (не Губернаторов!) Империи, а так же к уровням следующих зданий на планетах: ко всем шахтам и складам ресурсов, ко всем электростанциям, к Фабрике роботов, к Верфи, к Нанофабрике, к Лаборатории и к Нанолаборатории
Ник обладателя премиумного аккаунта выделяется в чате отдельным стилем (по умолчанию - желтым цветом)
[!] Файл "/docs/release.txt" приведен в соответствие с актуальной информацией
[!] Покупка ТМ
Поддержка платежных модулей: таблица платежей, базовые настройки, строки локализации и константы
Интерфейс покупки ТМ (требуется хотя бы один модуль платежной системы)
Поддержка payment_xsolla_currency v1b0
Поддержка методов 'LINK', 'GET' и 'POST' в системах платежа
[!] Админка: Воплощение
Теперь можно Воплотиться в любого игрока, посмотреть игру его глазами и поуправлять игрой его ру... эээ... интерфейсом!
Воплощение доступно только Администраторам сервера
Воплотиться можно только в игрока меньшего уровня - т.е. нельзя Воплотиться в такого же Администратора
Вложенные Воплощения недопустимы: нельзя Воплотиться, будучи уже
Воплощенным в кого-то. Сначала Развоплотитесь
Для Воплощения используйте соответствующую иконку в "Списке игроков"
При Воплощении изменяется только onlinetime пользователя. Вся остальная информация (IP, User-agent итд) сохраняется
Для Развоплощения используйте соответствующий пункт меню или "Выход"
Если на аккаунте игрока есть ошибки, или игрок заблокировае, или игрок находится в отпуске, то попытке Воплощения будет выведено сообщение об ошибке/блокировке/отпуске, которое увидел бы игрок на вашем месте.
Обновление страницы вернет вас в ваш аккаунт
После штатного Развоплощения (т.е. из меню, а не при ошибке и не из игрока в отпуске) Администратора возвращает на страницу списка игроков
ВНИМАНИЕ! Перед использованием Воплощения почистите куки в браузере! Из-за изменений в работе кукесов кэш браузера может содержать дубликаты куков
[!] Чертежи
"Чертеж" - это программный пакет, дающий доступ к производсту юнитов определенного типа. Доступны следующие чертежи:
1. Здания: термоядерная электростанция
2. Корабли: супертранспорт, гипертранспорт, Звезда Смерти, "Сверхновая"
3. Защитные постройки: планетарная защита
Чертеж покупается на Империю, после чего указанный юнит доступен к производству на всех планетах
Чертеж является перманентым
Чертежи заменяют Наемников в требованиях к постройке
Наемники "Разрушитель" и "Ассасин" сконвертированы соответственно в "Чертеж ЗС" и "Чертеж СН". Остальные четрежи надо покупать самостоятельно
[!] День Рождения: Добавлена подсистема подарков на ДР игрока
Игрок может ввести свой ДР на своей странице настроек. ДР вводится один раз и после этого не может быть изменен. Дата проходит валидизацию в соответствии с серверными настройками формата даты
Игрок с ДР на текущую дату будет отмечен специальной иконкой в статистике и на странице Вселенной. При наведении на иконку всплывает подсказка с датой рождения
Амдинистратор сервера может назначить количество ТМ в подарок на ДР в настройках (опция "Подарок игроку на день рождения"). Если это значение установлено в 0 - подарки отключены.
Выдача подарков происходит один раз в сутки всем игрокам, день рождения которых находится не далее чем в "Ретро-рождение" дней от текущей даты.
При этом подарки выдаются только игрокам, которые на момент выдачи уже имели введенную дату рождения. Движок гарантированно начислит подарки даже если ДР пришелся на день неактивности сервера (неисправность или обслуживание).
Такая система выбрана с одной стороны - что бы не обидеть игроков в случае проблем с сервером, а с другой стороны - что бы избежать злоупотреблений (например - ввести послезавтрашнюю дату ДР, на следующий день получить ТМ за "прошлый ДР", а через день - еще и за "нынешний". Такой вариант в текущей системе начисления подарков не прокатит)
[!] Навбар: Полностью переработан навбар.
Вся информация теперь выводится поверх кликабельных иконок с всплывающими подсказками
Добавлена информация о текущих исследованиях пользователя
[!] Админка: Список игроков
Полностью переписан "Список игроков" с использованием PTE
Сокращено количество строк локализации
Альянсы-игроки больше не выводятся в списке
Пишется полный срок бана
Для мультиаккаунтов подсвечиваются все адреса с одинаковым IP и в скобках добавляется количество игроков с таким же адресом
Теперь невозможно удалить игрока того же уровня - для предотвращения разборок между членами команды одного уровня
[!] Админка: Параметры MySQL сервера
В админку на страницу утилит добавлен вывод информации о настройках и параметрах MySQL сервера
[!] Админка: Шифрование пароля
Полностью переписана утилита шифрования пароля в MD5
[!] Верфь: Полностью переписана работа верфи
[!] Из данного файла удалена информация о ранних релизах (до момента разделения чейнджлога на девелоперский и пользовательский, т.е. начиная с релиза 25 и ранее) что бы исключить дублирование информации. Посмотреть эту информацию можно в девелоперском чейнджлоге /docs/changelog_dev.txt
[!] Статистика
Полностью переписана страница вывода статистики игроков и Альянсов
Она теперь использует PTE
Полностью переписаны алгоритмы работы страницы
Для игроков добавлены отображение следующих видов статистики: "Проведено боев", "Выиграно боев", "Проиграно боев", "Уровень за постройки", "Уровень за исследования", "Уровень за рейдерство". В качестве исходных данных используется информация из записей игроков (т.е. актуальная информация на момент просмотра статистики), поэтому изменение для данных типов статистики всегда будет равно 0
[!] Покупка секторов на планете
Теперь можно за ТМ докупать дополнительные сектора на планете - один сектор за раз, максимальное количество секторов не ограничено
Cектор можно купить в нескольких местах: в "Обзоре планеты", в "Управлении планетой" и на экране строительства зданий
Стоимость сектора для планеты - геометрическая прогрессия с количеством секторов в качестве номера члена, БС = 1000 и Ф = 1.01
Ориентировочная стоимость покупи 1 сектора на планете составляет: для планеты размером 100 секторов - 2678 ТМ, 150 секторов - 4404 ТМ, 163 сектора - 5013 ТМ, 200 секторов - 7244 ТМ, 250 секторов - 11913 ТМ, 300 секторов - 19493 ТМ, 330 секторов - 26508 ТМ
[!] Строительство
Минимальное время постройки/исследования юнита уменьшено до 1 секунды
[+] Корабли/Технологии
Бонус к скорости полета кораблей теперь вычисляется относительно требуемого уровня технологии двигателя. При равной технологии пользователя бонус равен нулю, при отличной - разнице уровней между требованиями постройки и пользовательской умноженной на бонус двигателя. Если уровень технологии пользователя меньше, чем требуемый уровень (например, для кораблей, купленных на Черном Рынке), то корабль получает пенальти к скорости, вычисляемое аналогично, но не более 95%
Пример. Бомбардировщик требует Ионный двигатель 6-го уровня. Базовая скорость полета корабля - 4.000. Каждый уровень технологии Ионных двигателей дает 20% к скорости полета. Таким образом:
* При технологии Ионных двигателей 8-го уровня скорость полета Бомбардировщика составит:
4.000 * (1 + (8 - 6) * (20 / 100)) = 4.000 * (1 + 2 * 0,2) = 5.600
* При технологии 6-го уровня - 4.000
* При технологии 3-го уровня
4.000 * (1 + (3 - 6) * (20 / 100)) = 4.000 * (1 - 3 * 0,2) = 1.600
* Без технологии пенальти к уровню будет равно 120%, поэтому вступит в силу ограничение:
4.000 * (1 + (0 - 6) * (20 / 100)) = 4.000 * (1 - 0,95) = 200
Технологии двигателей теперь так же влияют на расход топлива. Каждый уровень, выше требуемого, уменьшает расход топлива на 10% от бонуса к скорости за уровень, но не больше чем 50% от расхода. Каждый уровень, ниже требуемого - увеличивает расход на 20% от бонуса.
Например, для Бомбардировщика каждый уровень Ионного двигателя, ниже 6-го будет увеличивать расход топлива на 4% до 12% при полном отсутствии технологии. Каждый уровень, выше 6-го будет уменьшать расход топлива на 2%, вплоть до 25-го уровня, где вступит в силу ограничение.
[+] Локализация: Добавлена система отката языков в случае, если включаемый файл не найден в указанном месте движка/для указанного языка
[+] Офицеры: Академик, Фортификатор, Инженер
Теперь Фортификатор добавляет +1 слот к очереди постройки оборонительных сооружений за каждый уровень. Вследствие этого фактор Губернатора измененен с 1.00 до 1.25. Текущие Фортификаторы остались без изменений
Теперь Инженер добавляет +1 слот к очереди постройки кораблей и зданий за каждый уровень. Кроме того, бонус к скорости строительства зданий увеличен до 10%. Вследствие этого БС увеличена до 500, фактор увеличен до 1.65. У нанятых инженеров уровень понижен в два раза с округлением в большую сторону. В целом это означает, что Инженер стоит дешевле в пересчете на эффективный уровень
Изменена логика работы Академика, Фортификатора и Инженера. Все они влияют на скорость постройки юнитов, однако раньше зависимость была практически экспоненциальная. Вдобавок слишком большой бонус от Академика в Альянсе в сочетании с полностью прокачанным Наемником у игрока мог приводить к артефактам в работе исследований
Теперь бонус указанных офицеров - это процент увеличения скорости постройки соответствующих юнитов, а не процент, на который уменьшается время постройки. Т.е. это - слагаемое в знаменатели дроби. Если говорить совсем просто: 100% бонуса от офицера уменьшают время постройки юнита в 2 раза, 200% - в три раза, 300% - в четыре раза и так далее
В связи с данными изменениями сняты ограничения на максимальные уровни Фортификатора и Инженера. Кроме того, бонус Академика увеличен с 5% до 10%, а его максимальный уровень - до 30
[+] MVC: Базовая поддержка MVC
[+] Постройки/Здания
На превьюшках зданий и в информационной панели дополнительно отображаются бонусные уровни - включая таблицу расчета производства
[+] Ресурсы
Выводятся бонусные уровни зданий
[~] Альянсы: Немного оптимизирован код страницы Управления Альянсом
[~] Флоты
На странице выбора миссии таблица загрузки ресурсов по умолчанию отключена
Добавлено дополнительное сообщение при совпадении планеты отправки и пункта назначения
Добавлено дополнительное сообщение при попытке отправить незагруженный флот с миссией "Транспорт"
Добавлено дополнительное сообщение при попытке отправить флот с ресурсами в миссию, отличную от миссий "Транспорт", "Передислокация" и "Колонизация"
[~] Очередь верфи
Теперь так же показывается количество юнитов, когда юнит один в очереди
[~] Ракеты: небольшой ребаланс ракет
Емкость шахты увеличена до 12-и, а размер межпланетной ракеты увеличен до 3-х. Таким образом на один уровень шахты теперь влазит 12 перехватчиков или 4 ракеты (вместо 10 перехватчиков и 5 ракет, как было ранее), а количество ракет к перехватчикам на уровень шахты увеличилось до 3 к 1 вместо 2 к 1. Мощность ракет осталась прежней
[~] Система: Усовершенствован способ определения корневого каталога игры
[~] Админка/Редактирование планеты
При выбранной планете невозможно изменить её ID для исключения перезаписи информации о текущей планете
Добавлено форматирование количества юнитов/ресурсов на планете
Поддержка admin_planet_edit_extra v1c0
[~] Продажа ТМ: Доработан дизайн страницы. Добавлена информация о бонусах
[~] Навбар: Виджет экспедиций теперь ведет на страницу отправки флотов
[~] События флотов
Фаланга теперь показывает входящие и исходящие ракетные атаки
Индикатор атаки на планету теперь так же реагирует на ракетные атаки
[~] Скины: Обновлен скин supernova-ivash
[~] Меню
Добавлена дата запуска сервера (под логотипом). Для уже запущенных серверов она равна дате запуска апдейта. Она хранится в таблице `config` в переменной "server_start_date"
[~] Воплощение: Теперь при Воплощении в забаненного персонажа администратор автоматически развоплощается
[~] Меню
Пункты "Технология" и "Квесты" перемещены в раздел "Информация"
[~] Новости: Заголовок "Новости" таблицы актуальных новостей теперь является ссылкой - клик на него раскрывает список всех новостей
[~] Обзор планеты
Переформатирован вывод статуса Ворот для луны
Убран таймер исследований вследствие его полной бессмысленности
[~] Юниты/Гравитационная технология
Изменены требования и цена: теперь для исследования требуется Энергетическая технология 12 уровня, а цена исследования составляет 100.000.000 металла, 100.000.000 кристаллов и 50.000.000 дейтерия
[~] Черный Рынок/Инфотрейдер: Добавлена информация об уровне премиума
[%] Своз ресурсов: Исправлена ошибка со смещением цветового кодирования емкости транспортов на одну строку вниз
[%] Локализация/EN: Исправлены очепятки
[%] Статистика: Исправлено неотображение пола игрока при просмотре статистики с экранов логина/регистрации
[%] Меню: Исправлена ссылка с пункта "Статистика"
[%] Флоты: Исправлена ошибка, дающая возможность отправить флот с ресурсами в миссии "Атака" или "Удержание"
[%] Очередь верфи и исследований: Исправлена ошибка с индикацией конца очереди - "undefined" вместо "Очередь пуста"
[%] Админка: Закрыты защитой по authlevel не закрытые ранее файлы
[%] Альянсы: Исправлена ошибка незасчета уровня технологии при составлении списка доступных к постройке юнитов на верфи (корабли и оборона)
[%] Экономика/Строительство: Исправлен ошибка багоюз медленных соединений при постройке зданий
[%] Админка/Редактор локализаций
Добавлена поддержка констант SNC_VER_ в домене 'admin'
[%] Исследования: Исправлена ошибка повторного начисления ресурсов при отмене исследования
[%] Артефакты
Исправлена ошибка, когда АКК мог быть развернут на планете с уже идущим строительством
[%] Флоты
Исправлена мгновенная скорость полета если для двигателей кораблей соответствующие технологии еще не исследованы (например - корабль куплен на ЧР или найден в экспедиции)
[%] Локализация/EN: Исправлены очепятки
[%] Фаланга: Исправлена уязвимость в отправке флота
[%] Исправлена ошибка вычисления стоимости Наемников
[%] Исследования: Исправлена ошибка расчета времени для исследований Альянса в случае, если Альянсу известна технология МИС
[%] Сообщения: Исправлена ошибка при попытке отправить сообщение без адресата
[%] Исследования
Устранена ошибка в формуле рассчета скорости исследования технологии.
Теперь корректно рассчитывается время исследования для игроков и Альянсов, а так же корректно обрабатывается случай, когда у игрока нет ни одной лаборатории
После исправления время исследования увеличится чуть более, чем в два раза для игроков с МИС, а для игроков без МИС - упадет на один уровень лаборатории
[@] Документация: readme преобразован в UTF8
[@] Добавлена компенсация работы механизма Magic Quotes. Подробнее - см. /docs/install.txt, подраздел "Magic Quotes"
[@] Юниты: Добавлена дополнительный аттрибут "max" ко всем юнитам и его общая проверка в eco_get_build_data()
[@] Меню
Меню теперь является динамическим
[@] Модули
Автоматическая загрузка и регистрация модулей
Автоматическое перекрытие функций методами модуля из $manifest
Автоматическое подгрузка специфических пунктов меню
Автоматическая загрузка конфигурации модуля из файла
Теперь можно перекрывать функции методами из класса
Добавлена поддержка "цепи перекрытий". Можно протаскивать сквозь цепь результат вычислений, модифицируя его на каждом шагу (см. пример реализации перекрытия mrc_get_level)
Теперь в манифесте модуля можно задавать список констант, которые будут автоматически назначены при его инициализации
Теперь в манифесте модуля можно задавать список переменных, которые автоматически заменят (в случае обычных переменных) или дополнят (в случае одноуровневых массивов) соответствующие глобальные переменные. Специальный механизм гарантирует корректную работу с константами в таких переменных и массивах - даже тех, которые были только назначены при инициализации модуля
Конструктор теперь поддерживает загрузку индексированныъ элементов в многоуровневые массивы типа sn_data, включая использование констант в качестве индексов. Подробнее см. в "sn_module.php"
Теперь при инициализации модуля в цепочку вызовов функций корректно инсталлируется оригинальная основная функция из движка
[@] Подсказки: Можно задавать ширину подсказки для согласования с основной страницей
[@] Константы типов юнитов приведены к единому формату "UNIT_xxx"
[@] Всем юнитам прописаны типы
[@] События флотов
Переработана система событий флотов
[@] Файлы
Расширение файлов локализации изменено с ".mo" на ".mo.php" для лучшей поддержки в различных IDE
[@] Локализация
В дополнение к стандартным путям "language/<ISO2>/<domain>.mo.php" теперь так же поддерживаются пути вида "language/<domain>_<ISO2>.mo.php". Это сделано для упрощения структуры подкаталогов в модуле
[@] Очереди
Упразднена константа MAX_BUILDING_QUEUE_SIZE. Теперь размер очереди построек зданий и верфи/обороны задается переменными из таблицы `config` - соотвественно 'server_que_length_structures' и 'server_que_length_hangar'. По умолчанию их значения равны 5
[@] Классы
Новый метод 'assign_recursive' класса "template" - позволяет в одном операторе заполнить как переменные темплейта, так и блоки - включая вложенные
[@] Скины
Изменена организация CSS-файлов. Файл "formate.css" переименован в "skin.css". К нему присоединен в конце файл "default.css". Таким образом сохранена последовательность загрузки стилей и при этом все стили скина находятся теперь в одном файле
Теперь движок подгружает файл "/design/css/global_server.css" . Этот файл может использоваться для добавления специфичных глобальных стилей сервера - он не входит в дистрибутив и не будет перезаписан при обновлении движка. Файл грузится после "global.css" и, следовательно, может перекрывать глобальные стили "по умолчанию". Однако он грузится после скинового CSS и, следовательно, будет перекрыт стилями скина
Изменена система раскраски меню. Теперь каждому пункту меню присваиваются присваиваются собственные аттрибуты HTML ID и CLASS. КРАЙНЕ рекомендуется производить раскраску меню через аттрибут ID (см. пример в formate.css скина EpicBlue). Список ID элементов меню можно узнать либо в браузере (используя функцию "Inspect Element" или аналогичную), либо в файле "/includes/template.php", функция tpl_render_menu(), переменная $sn_menu
В базовый CSS перенесено цветовое кодирование чисел и сообщений (ошибка, предупреждение итд). При желании они могут быть перекрыти в CSS-файлах стилей
Выделение Администрации и премиумных аккаунтов проводится через стили. Соответственно, в основной скин добавлены стили классов ".nick_admin", ".nick_operator", ".nick_moderator" и ".nick_premium"
Добавлены классы ".same_alliance" и ".same_player" для выделения в статистике соответственно Альянса игрока и самого игрока
supernova-ivash: Скин приведен в соответствие с текущим положением дел
[#] Альянсы: Альянсы теперь могут рекрутировать Наемников и исследовать технологии!1. Каждый Альянс имеет счет с ресурсами металл/кристалл/дейтерий/ТМ2. Член Альянса может перевести ресурсы на счет Альянса. Сделать это можно на главной странице Альянса в разделе "Ресурсы Альянса". Там же можно увидеть состояние счета Альянса и бонусы, предоставляемые Альянсом (см. ниже). Кроме того в топбар добавлено отображение ресурсов Альянса и индикация наличия/отсутствия бонусов участникам Альянса3. Ресурсы со счета Альянса могут расходоваться только на нужды Альянса. Вывод ресурсов со счета Альянса невозможен4. Владелец Альянса с его счета может исследовать технологии и рекрутировать Наемников - соответственно пункты "Технологии Альянса" и "Наемники Альянса" на странице управления5. После достижения минимально необходимого размера Альянса (10 человек по умолчанию, задается в таблице `config` записью 'ali_bonus_members') каждый член Альянса получает бонус к своим Наемникам и технологиям6. Значение бонуса зависит от количества игроков в Альянсе и вычисляется по формуле:
- КОД:
Бонус = round(уровень технологии или Наемника / количество игроков),
где round() - операция математического округления.
7. Бонусы от Наемников и Технологий так же действуют при проверки требований к постройкам/исследованиям. Например: игрок состоит в Альянсе, дающем бонус +2 к Лазерной технологии, а его собственный уровень технологии равен 4. Эффективный уровень технологии этого игрока равен 6. Это означает, что находясь в Альянсе он имеет доступ к исследованию Ионной технологии (требуется ЛТ 5-го уровня) и может строить Тяжелый Лазер (требуется ЛТ 6-го уровня). Очевидно, если бы он не находился в Альянсе, эти постройки были бы заблокированы
8. При исследовании технологии уровень лаборатории равен количеству игроков в Альянсе на момент начала исследования. Активные исследования видны членам Альянса на странице информации
Примеры:
1. Альянс из 10 человек купил Технологию 4 уровня:
- КОД:
Бонус = round(4/10) = round(0,4) = 0
2. Альянс из 10 человек купил Технологию 7 уровня:
- КОД:
Бонус = round(7/10) = round(0,7) = 1
Выбранная механика бонусов Альянса призван обеспечить достижение сразу нескольких целей:
1. Исключить злоупотребление фишкой, когда 2-3 игрока формируют Альянс исключительно для получения бонусов
2. Активизировать межальянсную активность: бонусы от ресусов Альянса можно получить только начиная с определенного количества участников. Ну и чем больше игроков в Альянсе, тем больше у него ресурсов
3. Усилить лояльность игроков к Альянсу - при выходе (или выгоне) из Альянса игрок теряет все бонусы и (самое неприятное) все ресурсы, пожертвованные в Альянс
4. Исключить появление мегаальянсов: чем больше игроков - тем больше ресурсов они могут пожертвовать, но тем меньше бонусов получит каждый отдельный игрок
5. Слабые игроки в сильных Альянсах получают доступ к end-game юнитам (если, конечно, глава Альянса решит потратить ТМ на соответствующих Наемников) и бонус в развитии
6. Сильные игроки смогут поднять эффективные уровни Технологий даже в больших Альянсах. Например, если в Альянсе 15 человек, то исследовать 15 уровень технологии всем Альянсом будет проще и дешевле, чем каждому игроку отдельно
7. То же самое распространяется и на Наемников. При этом только Альянс дает возможность получить эффективный уровень Наемников больше максимального
Дополнительно доступны еще три метода расчета бонусов. Подробнее см. в /docs/readme.txt
[!] Иконка сайта: Новая иконка сайта! Мегареспект ув.Помощнику Ivash!
[!] Запущен сервер обновлений.
1. Движок сервера общается с сервером обновлений по протоколу HTTP.
2. Если установлен CURL и подключен к PHP, то для проверки версии будет использован именно он. Убедитесь, что CURL правильно настроен и ему разрешен доступ к внешним ресурсам
3. Если CURL не установлен, будет осуществлена попытка получить версию через file_get_contents(). Убедитесь, что в PHP разрешается обращаться к внешним сайтам через соответствующую функцию
В настоящее время сервер обновлений поддерживает следующие функции: проверка версии движка и регистрация сайта. Доступ к ним осуществляется из админки со страницы настроек сервера
1. При проверке версии передаются только анонимные данные - текущая версия БД, номер релиза и версия игры.
2. Результат проверки - рекомендация сервера обновлений о необходимости обновления текущей версии игры
3. Есть два варианта проверки версии: ручная и автоматическая
4. Ручная проверка версии выполняется в ручном режиме по нажатию кнопки "Проверить версию" на странице настроек.
5. Автоматическая проверка версии (по умолчанию - отключена) производиться самостоятельно движком по расписанию. Как и при ручной, передается тот же объем анонимных данных
6. Период автоматической проверки версии задается в секундах в таблице config переменной server_updater_check_period. По умолчанию период проверки равен 24 часам (раз в сутки).
7. Результат и время последней проверки выводится в левом меню.
8. Результат и время последней проверки так же выводится на странице настроек.
9. Предусмотрено цветовое кодирование результатов проверки (как в левом меню, так и в настройках): зеленый - обновление необязательно, желтый - желательно обновить движок, оранжевый - крайне рекомендуется обновление, красный - ошибка проверки версии
Регистрация сервера нужна для ряда запросов к серверу обновлений. При регистрации передается минимум информации, необходимой для идентификации сервера:
1. Полный URL сервера - т.е. HTTP-адрес и подкаталог сервера. Например: http://myserver.com/myfolder/. Это необходимо для первичной идентификации сервера. Полный путь необходим для того, что бы различать несколько копий СверхНовой, установленных на одном IP или домене.
2. Внутреннее название сервера. Используется для подстановки в сообщения.
Зачем вообще регистрировать свой сервер? В будущем планируется ряд возможностей, которые буду доступны только зарегистрированным серверам. В их число входит (отсортированы по запланированным срокам реализации):
1. Автоматическое получение чейнджлога
2. Автоматизированное обновление движка
3. Участие в рейтинге серверов
4. Багрепорты от администраторов серверов
5. Чат для администраторов серверов
6. По запросу - удаленная диагностика сервера
7. ...и многое, многое другое
Зачем регистрировать свой сервер прямо сейчас?
1. Запросы от администраторов зарегистрированных серверов имеют больший приоритет при диагностике проблем и обработке багрепортов.
2. При регистрации кроме индивидуального ключа серверу выдается уникальный идентификационный номер, который будет использоваться при первичной сортировке серверов. Чем раньше будет зарегистрирован сервер - тем, например, выше он будет в общем каталоге серверов...
[!] Наемники: Добавлена поддержка временных Наемников (ВН). Осталась так же поддержка постоянных Наемников (ПН). Тип Наемников выбирается в настройках сервера
1. ВН (как следует из названия) не являются постоянными, а нанимаются на определенный срок. По истечению срока Наемник исчезает
2. В режиме ВН отсутствует понятие "веток развития" и для найма доступны сразу все Наемники. Соответственно не отображаются требования к Наемникам на странице "Технологии"
3. Базовая цена покупки ПН в режиме ВН становится ценой найма на базовый период найма (БПН). По умолчанию он равен одному среднекаелндарному месяцу (30 дней, 2592000 секунд). Изменить БПН можно на странице настроек сервера
4. Предусмотрена система скидок/наценок в зависимости от срока покупки Наемника. Настройки содержатся в массиве $mrc_hire_discount в файле /officer.php. Индекс элемента - количество секунд найма, значение - коэффициент скидки. "1" означает, что на данный интервал найма нет ни наценки, ни скидки и при пересчете на количество секунд в БПН его стоимость будет в точности равна стоимости БПН. Если число меньше единицы - это означает скидку; больше единицы - наценку
5. Временного наемника можно увольнять до истечения срока найма. ВНИМАНИЕ! При увольнении наемников вся портаченная на найм ТМ будет утеряна!
6. Режим Наемников отображается на странице "Мировые константы"
При переключении режима Наемников следует учитывать следующие особенности:
1. При включении ВН все постоянные Наемники будут преобразованы во временные со сроком действия равному БПН. В случае необходимости изменить БПН нужно СНАЧАЛА его изменить, а затем переключать режим работы Наемников
2. После включения ВН изменение базового интервала найма не влияет на уже рекрутированных Наемников, а влияет только на цену нового найма
3. При отключении ВН все активные на этот момент Наемники будут преобразованы в постоянные - вне зависимости от того, на какой срок они были наняты и сколько времени осталось до срока истечения найма. Информация о сроках найма при этом теряется
4. При отключении ВН активизируются ограничения по рекрутированию Наемников, однако уже нанятые Наемники останутся активными и будут влиять на игру вне зависимости от того, может игрок их купить или нет. Такой способ переключение выбран для исключения потерь ТМ, вложенных игроками в Наемников
Переработана страница рекрутирования Наемников:
1. Добавлена поддержка временных Наемников
2. Стоимость найма отображается динамически в зависимости от текущего режима Наемников, выбранного уровня и срока найма
3. В режиме ПН видны все наемники - даже недоступные (с соответствующими пояснениями)
4. В режиме ПН можно нанимать сразу несколько уровней Наемников
5. При найме постоянных наемников показывается ровно столько уровней, насколько хватает ТМ
[!] Аватары: Добавлена поддержка серверных аватаров игроков
Аватары могут быть загружены с локального диска на странице настроек пользователя.
Поддерживаются файлы форматов JPG, GIF и PNG размером до 200КБ. Загруженные картинки будут отмасштабированы до размеров 128х128.
Аватар отображается на странице "Император" и в попапе игрока на странице "Вселенная"
[!] Альянс: Добавлена поддержка серверных логотипов Альянсов
Логотипы могут быть загружены с локального диска на странице управления Альянсом
Поддерживаются файлы форматов JPG, GIF и PNG размером до 200КБ. Загруженные картинки будут отмасштабированы до размеров 128х128
Логотип отображается на странице информации об Альянсе и в попапе Альянса на странице "Вселенная"
[!] Вселенная: Галактики и системы могут иметь собственные названия!
1. По умолчанию галактики и системы не имеют собственных названий
2. Увидеть текущее имя галактики или системы можно на странице "Вселенная"
3. Назвать галактику или систему можно по ссылке "Переименовать" соответственно возле координат галактики или системы на странице "Вселенная"
4. Именование галактики или системы имеет соответствующую стоимость - по умолчанию 10000 ТМ для галактики и 1000 ТМ для системы - т.н. "базовую стоимость именования". Изменить базовую стоимость именования можно в настройках сервера. Игроки могут видеть текущую базовую стоимость именования на странице "Мировые константы"
5. При именовании галактики или системы игрок может назначить цену именования. Минимальная цена именования равна базовой стоимости именования
6. При переименовании уже именованной галактики или системы, игрок должен уплатить ранее назначенную стоимость именования плюс базовая стоимость именования. Таким образом, если первый игрок назначил цену именования системы в 2500 ТМ, а базовая цена именования системы составляет 1000 ТМ, то игрок, желающий переименовать ту же систему должен уплатить не меньше 3500 ТМ. Таким образом более высокая цена именования галактики или системы в определенной степени защищает объект от переименования
7. Как было сказано в п.2, имя галактики и системы видны всем игрокам
8. Все действия по переименованию галактик и систем записываются в лог - код события 104
[!] Модульность: Базовая поддержка модульности - динамически перекрываемые функции. Подробное описание по использованию динамического перекрытия см. в разделе "Модульная система" файла /docs/readme.txt
[!] Исследования: Очередь исследований перенесена с планет на пользователя
1. Исследования теперь могут производится даже на планетах со строящимися лабораториями/нанолабораториями
2. В случае отсутствия МИС для проведения исследования выбирается лаборатория с максимальным эффективным уровнем (т.е. с учетом нанолабораторий)
3. При отмене исследования ресурсы возвращаются на ту планету, с которой были взяты
4. Награда за квесты на исследование теперь всегда начисляется на основную планету игрока
5. При апдейте все идущие исследования будут перенесены в пользовательскую очередь
[!] Чёрный Рынок: Продавец информации
На Чёрном Рынке доступна новая услуга: продажа информации.
Письма от Продавца Информации всегда приходят в почтовый ящик - даже если у игрока отключено получение шпионских отчетов. Мистика какая-то!
Информация об игроке: текущие уровни активных Наемников.
[!] Темплейты: Минификатор
ВНИМАНИЕ! ЭТО - ЭКСПЕРИМЕНТАЛЬНАЯ ФИШКА! ИСПОЛЬЗУЙТЕ ЕЁ НА СВОЙ СТРАХ И РИСК!
Минификатор уменьшает размер генерируемого движком HTML-кода путем замены нескольких идущих подряд пустых символов (перевод строки, табуляция, пробел) одним символом пробела.
Минификатор умеет сжимать HTML и встроенный JS-код. Для JS-кода он так же удаляет однострочные комментарии.
Минификатор работает на уровне темплейтов и если включено кэширование, то минификатор вызывается только один раз при компиляции кода и дальше кэшируется уменьшенный скомпилированный темплейт, что исключает необходимость в повторном вызове минификатора. Этим он выгодно отличается от минификаторов, работающих на уровне сессии через ob_hanler()
В среднем по сайту минификатор дает выигрыш порядка 7-8%% при незначительном падении производительности.
По умолчанию минификатор отключен. Включить его можно в админке в настройках сервера - пункт "Минификатор темплейтов"
[+] Пол: Добавлено отображение пола игрока на странице "Император", на странице статистики и в попапе игрока на странице "Вселенная"
[+] Настройки: Отображение логотипов Альянсов и аватаров игроков на странице "Вселенная" может быть отключено в настройках игроков
[+] Вселенная: На попапе игрока отображается его текущее звание в Альянсе
[+] ЧР/Торговец ресурсами: Теперь можно поменять ТМ сразу на все ресурсы (опция "Все ресурсы" в дропдауне выбора ресурсов). При этом вводимая сумма будет разделена на три части и на каждую из этих третей будет куплено соответствующее количество ресурсов по курсу. Стоимость такой операции - в три раза больше базовой стоимость обмена
[+] Квесты: Теперь в награду за исполнение квеста можно одновременно ставить до четырех видов ресурсов
[+] Скины: Добавлена возможность перекрыть дефолтные стили элементов jQueryUI (файл /design/css/jquery.css) стилями, специфическими для скина. Для этого в корневой каталог скина нужно положить файл jquerу.css с настройками стилей элемента. Сгенерировать файл под свою тему можно на сайте jQuery по ссылке: http://jqueryui.com/themeroller/
[+] Постройки: Вертикальная очередь построек. Включается в настройках пользователя в секции "Настройки интерфейса"
[+] Исследования: Добавлены подробные сообщения об ошибке в случае, когда технология не может быть исследована (нехватка ресурсов, неудовлетворенные требования итд)
[+] Обзор планеты: Настраиваемое количество колонок в списке планет
На странице настроек пользователя можно указать, сколько колонок должно быть в списке планет - пункт "Количество колонок в списке планет" в разделе "Настройки интерфейса"
Можно выставить количество колонок в 0 и указать максимальное количество рядов с списке - см. соответствующий пункт там же. В этом случае движок рассчитает количество колонок исходя из этого числа.
Обращаю внимание - указывается именно максимальное количество рядов! Т.е. если у игрока 6 планет, а количество рядов указано 5, то количество необходимых колонок для того, что бы число рядов не привысило 5 будет равно двум. Соответственно, список планет будет сформирован в виде двух колонок по три ряда. Если же колоний будет 12 - список планет будет выглядеть как таблица три колонки по четыре ряда.
Данная особенность связана с построением списка планет - слева направо и сверху вниз. Естественно, не составило бы никакого труда сделать вывод списка сверху вниз, а затем справа налево - это было бы даже легче. Однако при выбранном способе сохраняется пользовательская сортировка планет - более "важные" колонии всегда будут "выше" в списке
[+] Документация: Добавлен файл /docs/html/changelog.html - чейнджлог в html
[+] Навбар: Переработан навбар
Из навбара убрано количество текущих ресурсов на планете/в альянсе - их присутствие на большей части экранов не имело практического смысла при том, что отнимало драгоценное вертикальное пространство страницы.
Сведения о количестве ресурсов на планете вынесены в планетарный навбар. На странице настроек пользователя можно сделать планетарный навбар постоянным - т.е. будет полностью восстановлен функционал старого навбара
Там, где сведения о количестве ресурсов на планете смысл имеет - они добавлены или включен планетарный навбар (см. ниже)
[~] Обзор планеты: Добавлено текущее количество ресурсов на планете, текущий размер хранилищ, а так же - количество ресурсов на прилетающих флотах
[~] Черный Рынок/Скупщик кораблей и Продавец б/у кораблей
Добавлено количество текущих ресурсов на планету
[~] Модуль "Альянсы-игроки" - v6
Добавлено количество текущих ресурсов в таблицу перечислений ресурсов Альянсу
Модуль необходимо обновить до версии v6+ для работы с SN v33a29+!
[~] Экономика/Строительство
На всех экранах строительства (здания, флот, оборона) включен планетарный навбар
[~] Флоты
Добавлено количество дейтерия на планете на страницу выбора кораблей, страницу выбора точки назначения и страницу своза ресурсов
Так же на странице выбора кораблей включен планетарный навбар
[~] Альянсы
Добавлен заголовок на страницу Альянсов с тэгом Альянса
Ссылка на управление Альянсом/игроками перенесена в самую верхнюю таблицу
[~] Постройки: Информация о постройках кэшируется при заходе на страницу.
Ширина таблицы построек устанавливается на максимальную из возможных. Это предотвращает "баян" - прыжки ширины таблицы построек
[~] Император: Теперь на страницы показывается так же очки за ресурсы и исследования. Немного переформатирована таблица статистики
[~] Статистика: Оптимизирован алгоритм подсчета статистики. Отключено обновление "очков планеты"
[~] Чат: Теперь при таймауте чата скрипт поллинга полностью прекращает работу
[~] Экономика: При расчете времени постройки юнитов учитывается не только количество ресурсов, но и их качество. Время постройки нормированы по дейтерию, т.е. постройки с большей долей низкоуровневых ресурсов строятся быстрее
[~] Админка: Добавлены label for для всех чекбоксов
[~] Скины: EpicBlue имеет собственное оформление элементов jQueryUI
[~] Вселенная: При создании новой планеты из имени планеты исключен знак "№" для более корректной работы функций PHP
[~] Альянсы: Количество игроков в Альянсе теперь изменяется сразу при изменении, а не при апдейте статистики/обслуживании сервера
[~] Альянсы: Теперь список членов Альянса распознает права просматривающего без захода в админскую часть, поэтому из админки убран пункт "Управление участниками"
[~] Альянсы: Изменено отображение логотипа на странице Альянса
[~] Список планет: Клик на иконке летящего союзного флота теперь открывает страницу "Флоты в полете"
[~] Чёрный Рынок
Редизайн основного экрана и экрана обмена ресурсов
Откуда взялась эта странная надпись? Очень странно...
[~] Меню: Переработано меню
[~] Чат: Тэг Альянса после имени игрока теперь указывается в квадратных скобках, а адресат сообщения - в круглых. Сделано для унификации написания тэга Альянса в движке
[~] Статистика: Теперь полностью отрабатывается переход со ссылок Вселенной на страницу статистики: правильно выбирается тип статистики (игрок/Альянс) и страница статистики, корректно отрабатываются дропдауны (выбирается именно текущий тип/страница статистики).
Cписок статистики скроллируется либо до выбранного объекта - если позволяет размер страницы, либо максимально вниз, если размер страницы не позволяет
Выбранный объект отмечается знаком ">" в столбце рангов
Все числа в ячейках отцентрированы по правому краю
[~] Логин/Регистрация: Данные по серверу (размер, скорость, онлайн) сгруппированы в один блок и теперь видны так же на странице регистрации
[%] Партнерка: Исправлено отображения количества начисленных ТМ
[%] Наемники: Исправлена ошибка начисления процентных бонусов: в случаях многократных бонусов происходило начисление бонуса на бонус, а не на базовое значение. Это приводило к получению завышенных бонусов - например, на Адмирале и Навигаторе
[%] Альянсы: Исправлена ошибка при отправке письма группам Альянса
[%] Альянсы: Исправлена ошибка с неправильным отображением звания главы Альянса
[%] Регистрация: Исправлена ошибка, когда игрок мог создать аккаунт/планету с пробелами в начале/в конце
[%] Админка: Исправлена ошибка создания квеста
[%] Ракетная атака: Исправлена ошибка, из-за которой ракеты били в десять раз слабее
[%] UBE: Исправлена ошибка неучета бонуса Альянсов в бою. ВНИМАНИЕ! Бонусы Альянса и от Наемников по-прежнему не будут видны в логе боя!
[%] Альянсы: Исправлена ошибка выхода из Альянса - у игрока не затирался тэг Альянса
[%] Флоты: Исправлена уязвимость, позволяющая дублировать флоты
[@] Админка: Редизайн интерфейса просмотра логов (бывш. "Ошибки")
[@] Аватары: Для корректной работы подсистемы аватаров в PHP должен быть корректно настроен временный каталог и движку должна быть разрешена запись в каталог /images/avatar
Максимальный размер аватара настраивается в таблице `config` переменные avatar_max_width и avatar_max_height
[@] Пол: В скины добавлена иконка пола в подкаталог "images" скина. Файлы для мужского и женского пола называются соответственно "sex_male.png" и "sex_female.png". Встроенные скины обновлены автоматически
[@] Новости: Изменения в редактировании новости
При редактировании новости галочка рассылки новости по умолчанию отключена
При редактировании новости не изменяется глобальное время написания последней новости - т.е. отредактированная новость не включает список последних новостей на обзоре планеты
[@] JS: Обновлен jQuery до версии 1.7.1. Обновлен jQuery-UI до версии 1.8.17
[@] БД: Доработан дамп. Теперь по умолчанию новосозданный игрок имеет мужской пол - так же, как и дефолтный администраторский аккаунт
[@] Локализация: Все строки локализации, относящиеся к наемникам, вынесены в файл mrc_mercenary.mo
[@] Исследования: Исследования теперь завернуты в транзакции - это позволит избежать злоупотреблений связанных с частым обновлением страницы на медленных соединениях
[@] Файл todo.txt заменен на todo.xls
[@] $sn_data['groups']['prod'] => $sn_data['groups']['factories']
[@] Чёрный Рынок: Почищены языковые файлы от неиспользуемых строк
[@] Темплейты
Расширение файлов темплейтов изменено с ".tpl" на ".tpl.html" для большего удобства разработки
Теперь при использовании директивы <!-- INCLUDE --> НЕ НУЖНО указывать расширение подключаемого файла
[@] Файлы: Удалены неиспользуемые файлы faq.php, faq1.php, faq2.php
[@] Файлы: Сильно переработана организация файлов PHP
Многие процедуры поменяли свое местоположение
Множество файлов теперь не грузятся автоматически при старте движка, а грузятся лишь по потребности. В частности - все файлы миссий подгружаются только в менеджере летящих флотов, а сам менеджер грузится только при потребности в обработке флотов. Кроме того, боевой движок подгружается только в симуляторе и при обсчете боев (Миссии "Атака" и "Уничтожить")
Все это позволило заметно сократить размеры кода в памяти сервера
[@] Модули: Загрузчики модулей теперь располагаются в каталоге /modules, а не в /modules/_functions
[!] Исправлена работа с большими числами:
Все числовые значение в HTTP-запросах трактуются как числа с плавающей запятой. Все идентификаторы передаются как строки
Все идентификаторы в БД являются BIGINT(20). Соответствующим образом переконфигурированы (добавлены или изменены) FOREIGHN KEYS
Переработаны все таблицы, что бы исключить переполнение при любом разумном сценарии использования движка (скажем, вплоть до скоростей x1000000)
[+] Постройки: На ресурсогенерящие постройки добавлена подсказка по производительности
[~] Скины: Обновлен скин СН/Иваш
[~] Постройки: Показываются все возможные строения на планете/луне. Если невозможно осуществить постройку - показывается причина
Иконки информации и своза ресурсов поменялись местами, что бы соответствовать расположению иконки своза ресурсов на списке планет (Обзор/Империя)
[~] Постройки: Теперь при невозможности постройки юнита не затемняется название и текущий уровень юнита
[~] Постройки: В описании юнитов разнесены ссылки на постройку и уничтожение юнита во избежании случайного выбора не того действия
[~] Постройки: Из темплейта постройки задний яваскрипт вынесен в отдельный файл
[~] Постройки: Увеличено место для картинки здания до 150 пикселей. Это предотвратит "скачки" описания постройки при перемещении выделения на иконках
[~] Экономика: Производство и потребление электроэнергии теперь масштабируется согласно скорости добычи
[~] Верфь: Обновлен интерфейс верфи
[~] Верфь: Ограничено максимальное количество строящихся юнитов на верфи
[~] Экономика: Увеличена базовая добыча шахты кристаллов с 20 до 32. Соответственно увеличено энергопотребление с 10 до 16
[~] Статистика: Статистика теперь считается не в транзакции, что бы не блокировать игроков. Сохраняется статистика за 10 дней
[~] Рекорды: Переписана страница рекордов
[#] Постройки: Ссылки на создание и уничтожение юнитов раскрашены в цвета, согласно CSS (по умолчанию: зеленый для создания, красный - для уничтожения)
[%] Вселенная: Исправлена ошибка с запуском отрицательного количества юнитов через AJAX
[%] Альянсы: Исправлена ошибка с неотображением тэга у членов новосозданного Альянса
[%] Постройки: Исправлена ошибка с невозможностью выбора превьюшки здания, которое нельзя построить
[%] Постройки: Исправлена ошибка с невозможностью уничтожить постройку, когда не хватает ресурсов на создание постройки, но хватает на её уничтожение
[%] Админка: Исправлена ошибка самопроизвольного сброса флага масштабирования хранилищ
[%] Друзья: Исправлена надпись с неправильной кодировкой при ответе на письмо друга/кандидата
[%] Исправлена уязвимость, позволяющая быстрыми многократными постройками или отменами добиться увеличения ресурсов
[%] Рекорды: Исправлена ошибка, когда в списке рекордсменов появлялись члены команды сервера
[%] Флоты: Исправлена уязвимость, позволяющая передавать флоты другим игрокам.
[@] DB: Обновлен дамп БД до версии 32
[@] PTE: Парсер темплейтов теперь понимает конструкции вида {L_tech[D_CONST]}, которые будут развернуты в $lang['tech'][CONST]
[@] eco_get_build_data() возвращает время постройки в отдельном подмассиве RES_TIME, а не в массивах действий BLD_CREATE/BLD_DESTROY
[@] Числовые идентификаторы для строений заменены константами STRUC_xxx
[!] Артефакты: Добавлена подсистема Артефактов - редких объектов с уникальными свойствами. Артефакты можно купить за ТМ. Артефакты являются одноразовыми - после использования Артефакт исчезает. Некоторые Артефакты настолько мощные, что их количество в одной Империи ограничено. Использование некоторых Артефактов привязано к планетам - т.е. их эффект будет распространятся только на эту планету. Эффекты других Артефактов распространяются на всю Империю. Особо мощные Артефакты могут оказывать влияние на солнечную систему, галактику или даже Вселенную
Добавлен Артефакт - "Большой Адронный Колайдер"
Добавлены Артефакты - Автономный Колонизирующий Комплекс трех уровней
[!] Наемники: Произведено разделение офицеров на "наемников" и "губернаторов". Наемники покупаются через общее меню слева и их бонусы распространяются на всю Империю. Губернаторы покупаются отдельно на каждую планету на странице "Управление планетой" и их бонусы распространяются только на ту планету/луну, на которой они куплены. Так же произведены следующие изменения:
1. Стоимость наемников и губернаторов теперь рассчитывается по формуле:
БС * (Фактор ^ Уровень), где
БС - базовая стоимость наемника
Фактор - заранее заданная величина
^ - операция возведения в степень
Уровень - новый уровень наемника
2. По умолчанию БС = 3000, Фактор = 1
3. Максимальный уровень карго-мастера увеличен до 20
4. Упразднены наемники Геолог, Энергетик, Архиктектор, Конструктор, Фортификатор, Разрушитель - их функции переданы губернаторам (см. ниже)
5. Вся ТМ за упраздненных наемников возвернута игрокам
6. Реорганизованы ветки развития наемников
"Шахтерская" теперь выглядит как "Карго-мастер" - "Шпион" - "Академик" - "Разрушитель"
"Рейдерская" теперь выглядит как "Адмирал" - "Координатор" - "Навигатор" - "Ассасин"
7. Балансировка губернаторов проведена из расчета на "среднего игрока", имеющего 6 планет. Такие игроки не получат пенальти при оснащении всех планет губернаторами. Понятно, что общая производительность Империи уменшится, однако это те жертвы, на которые я готов пойти. В целом же изменение направлено на уменьшение среднего количества ТМ у игроков. В особенности - у топов и саб-топов
8. Новый губернатор "Технолог" объединяет функции Геолога и Энергетика БС = 800, Фактор = 1.06, стоимость 20 уровня - 29418 ТМ, не имеет ограничения по уровню. С 5-го уровня позволяет строить термоядерную электростанцию
9. Новый губернатор "Инженер" объединяет функции Архитектора и Конструктора БС = 400, Фактор = 1.25, стоимость 10-го уровне - 13298 ТМ, максимального 15-го - 43868 ТМ
10. Губернатор "Фортификатор" так же играет для планеты роль Защитника БС = 2000, Фактор = 1, стоимость максимального 8-го уровня - 16000 ТМ. С 3-го уровня позволяет строить Планетарную защиту. Дает хозяину планеты бонус 10% за каждый уровень к атаке, броне и щитам при обороне
11. Вследствие полной бессмысленности найма Технолога на лунах во избежание напрасных трат ТМ игроками он убран со страницы управления луной
12. Страница покупки губернаторов требует подтверждение операции при покупке губернатора, отличного от текущего. Страница покупки имеет защту от случайной покупки губернатора при обновлении страницы
[!] Локализация: СверхНовая использует кодировку UTF-8 при работе с БД и рендере HTML-страниц. Таким образом поддерживаются любые наборы символов
Все файлы локализации пропущены через редактор и приведены к одному виду
Добавлены заголовки в файлы локализации
[!] Редактор локализаций: В админке добавлен редактор локализаций - пункт меню "Локализация" в разделе "Утилиты"
1. Выбор пункта меню "Локализация" открывает выбор т.н. "домена" для редактирования. Домен - это совокупность строк локализации, относящихся к отдельному аспекту игры. Домен эквивалентен языковому файлу с соответствующим именем
2. После выбора домена и подтверждения выбора открывается страница редактирования строк локализации. Открытие больших файлов может занимать существенное время - поэтому запаситесь терпением
3. После редактирования строк локализации и подтверждения редактор создаст файлы "<имя домена>.mo.new" в каждой папке языка
4. Файлы .mo.new имеют приоритет перед обычными .mo файлами локализации. Т.е. если в одном языковом каталоге присутствуют оба типа файлов, редактор загрузит для редактирования .mo.new
5. Для того, что бы движок подгрузил новый файл локализации, требуется изменить его расширение с .mo.new на .mo. Обычно это перезапишет файл текущий файл локализации - поэтому следует заранее сделать его резервную копию
6. ВНИМАНИЕ! Следует соблюдать осторожность при замене старых файлов на новые! Редактор не сохраняет комментарии и игнорирует дополнительный код в файлах локализации! В результате простая перезапись файлов может нарушить нормальную работу подсистемы локализации движка! Если ваши файлы локализации содержат дополнительный PHP-код, то они требуют ручного вмешательства после обработке в редакторе!
7. Редактор локализаций корректно работает с константами внутри доменов
8. В редакторе есть возможность добавлять и удалять строки локализации
[!] Межгалактические Врата: Интерфейс Врат вынесен на отдельную страницу и доступен с Обзора планеты (куда вынесен таймер готовности врат)
Все таймеры врат заменены на sn_timer
[!] Экономика: ТМ смасштабирована в отношении 1 к 1000. Т.е. весь приход ТМ и все цены в ТМ увеличены в 1000 раз
[!] Темная Материя: За исследования начисляются опыт, за опыт - уровни, за уровни - ТМ. Таблица необходимого опыта для набора уровней эквивалентна таблице опыта за постройки (см. /docs/readme.txt). За каждый уровень начисляется 1000 ТМ
[!] Флот: Новый корабль - Гипертранспорт. Предназначен для ТОП игроков и/или скоростных Вселенных
[+] Обзор планеты/Обзор Империи: Таймер очереди строительства зданий под иконкой планеты теперь переключается на следующее здание в очереди при окончании строительства текущего. Ранее таймер показывал только прогресс постройки первого здания в очереди
[+] Список планет: На изображения планет добавлен индикатор текущего губернатора и его уровень
[+] Инфо/Флот: Показываются текущие характеристики корабля (с учетом наемников и технологий)
[+] Новости: Добавлена лента новостей на страницу обзора планеты. Выводятся только последние непрочитанные новости. Количество выводимых новостей настраивается на сервере (по умолчанию - 3)
[+] Вселенная: В попап Альянсов добавлен его ранг
[+] Экономика: Новая настройка сервера "Масштабировать склады от скорости добычи". Настройка доступна в общих настройках сервера в разделе "Прочие параметры". По умолчанию возможность отключена
[+] Строительство/Здания: В ссылке на уничтожение здания указывается количество требуемых ресурсов и время
[~] ТМ: Изменения в ТМ текущего игрока отображаются сразу по факту
[~] Луна: Имя создаваемой луны теперь не такое длинное
[~] Список планет: Добавлена всплывающая подсказка на иконку губернатора
[~] Поиск: Оптимизированы запросы поиска. При поиске Альянса поиск подстроки происходит одновременно в имени и тэге
[~] Статистика: Изменен расчет статистики. Теперь в тратах каждый ресурс считается согласно курсу обмена. Таким образом игроки с более ценными ресурсами получат больше очков
[~] Вселенная: При обнаружении планеты с отсутствующим пользователем в БД планета удаляется с отсрочкой 24 часа
[~] Партнерка: Добавлено ограничение по минимальному количеству ТМ, после которого начинается начисление бонусов реферралу - переменная "rpg_bonus_minimum" в таблице "config"
[~] Шпионаж: Оптимизирована процедура генерации шпионского рапорта
[~] Фаланга: Исправлен и переработан алгоритм работы фаланги. Добавлено два исключения:
1. Флот, летящий с луны, фалангой не виден
2. Флот, летящий на задание "Удержание" фалангой не виден
[~] Технологии: Пересмотрены технологии. Устранены противоречия в ветках развития (например, ионный двигатель можно было исследовать без технологии). Технологии переупорядочены в более логичном порядке
[%] Флоты: Добавлен патч для mysql-серверов со включенным STRICT_TRANS_TABLES при отправке флотов
[%] Локализация: Добавлен патч для серверов с неправильно настроенной кодировкой в HTTP-заголовке
[%] Шпионаж: Корректно выставляется время шпионского рапорта
[%] Локализация/EN: Исправлены ошибки с двумя l в "Metall" и "Crystall"
[@] SYS: Устаревшие функции заменены актуальными аналогами:
int_buildCounter => tpl_parse_planet
GetTargetDistance, GetMissionDuration, GetFleetConsumption => flt_travel_data
GetShipConsumption, get_ship_speed => get_ship_data
GetFleetMaxSpeed => flt_fleet_speed
[@] SYS: В описании структуры кораблей (vars.php) данные о двигателях вынесены в отдельный массив 'engine'. Теперь можно указывать неограниченное количество двигателей для апгрейда корабля
[@] Апдейтер: Доработан апдейтер, что бы предотвратить зацикливание
[@] Админка: В "Утилиты" добавлена возможность форсировать только последний апдейт
[@] Новости: На странице новостей, странице Императора и обзоре планеты рендерятся одной процедурой и используют один темплейт. Индикатор свежих новостей теперь ориентируется на дату просмотра, а не на количество новостей
[@] ТМ: Исправлена лишняя ошибка в логах, если количество изменяемой ТМ равно 0 (например, при бесплатном рынке или офицерах)
[@] ТМ: Изменение ТМ в переменной $user производится в теле rpg_points_change
[@] БД: В таблице `users` убраны неиспользуемые поля. Изменены типы нескольких полей на более логичные. Добавлено поле `ally_tag`
В таблицы `users` и `alliance` добавлены поля с текущими значениями ранга и очков статистики
[@] Админка/Настройки: Состояние все чекбоксов (включен/выключен) теперь определются в темлейте
[!] Сообщения: Добавлена возможность пересылки личных сообщений на емейл игрока. Возможность включается администратором сервера в настройках - опция "Разрешить пересылку ЛС на email". После этого в настройках игрока появляются дополнительные опции для всех категорий входящих сообщений
[!] Фаланга: Переписан вывод фаланги с использованием функций СН. Теперь он выглядит аналогично списку событий флота на странице "Обзор планеты". Алгоритм работы - почти оффовский:
1. Показываются все флоты, летящие от сканируемой планеты или же к ней
2. Полет A --> B
a) скан B => можно увидеть время прибытия флота
b) скан A => можно увидеть время возвращения флота (но не его прибытия на B)
3. Возвращение B --> A
a) скан B => не видно ничего
b) скан A => виден возвращающийся флот
4. Особый случай: задание "Передислокация" A --> B
a) флот виден только на B, но не на A
b) после отзыва флот нигде не виден
5. Полнота информации о флотах зависит от уровня шпионажа (см. ниже)
[!] Админка: С нуля создан интерфейс редактирования юнитов/ресурсов на планете - пункт меню "Редактировать" в разделе "Планета". Он доступен членам команды начиная с Оператора (authlevel=2) и выше
[!] Исследования: Полностью переписан интерфейс Лаборатории
Очередь исследований приведена к стандартному виду
Обработка очереди исследований теперь производится при каждом обновлении страницы, а не только при входе в интерфейс Лаборатории
[!] АнтиРМФ: Если флот атакующего уничтожен за один раунд, то:
1. Атакующий не получает отчета о бое
2. Флоты, находящиеся в удержании так и остаются на орбите
[+] Антибашинг: Добавлена возможность настройки системы антибашинга на страницу настроек сервера
[+] Мировые константы: Добавлена информация о текущих настройках антибашинга
[+] Обновление: Добавлена возможность форсировать обновление в случае проблем с автоматическим обновлением. Возможность доступна в интерфейсе Администратора, пункт меню "Утилиты"
[+] Сообщения: Теперь настройки автоматических уведомлений включены по умолчанию для новых игроков
[+] Верфь: Переверстан интерфейс Верфи и Обороны. Вид очереди построек обновлен. Теперь они выглядят так же, как и очередь постройки зданий
Добавлена возможность удалить последний добавленный элемент из очереди
Кнопка "Построить" дублируется возле каждого юнита. Функционал сохранен - по её нажатию будут построены все выбранные юниты
[+] Обзор планеты: Вид очереди построек верфи и очереди исследований теперь аналогичен очереди построек зданий
[+] Обзор планеты/Фаланга: На количество отображаемой информации о летящих чужих флотах влияет эффективный уровень шпионажа (технология+наемник):
Меньше 4 - нет информации о летящем флоте
4 и выше - видно общее количество кораблей во флоте и везет ли флот ресурсы
6 и выше - виден качественный состав флота - т.е. сколько групп кораблей во флоте и сколько кораблей в каждой группе
8 и выше - видно точное количество ресурсов в трюмах кораблей
10 и выше - виден количественный состав флота
[+] Сообщения: Изменена цветовая кодировка сообщений.
Категории сообщений переупорядочены
Добавлена возможность очистить сообщения определенной категории, не открывая их - на случай переполнения почтового ящика
Добавлена подсказка
[+] Админка/Список планет: "Список планет", "Список лун" и "Активные планеты" используют один и тот же код и шаблон. Список планет теперь показывает тип планеты, хозяина планеты (имя и ИД), а для лун - родительскую планету и её ИД
[+] Чат: Боевые отчеты теперь преобразуются в ссылки. Из соображений безопасности работают только ссылки на текущем сервере. По клику на ссылку боевой отчет открывается в новом окне
[+] Сообщения: Изменена процедура генерации писем с уведомлением о боевом отчете следующим образом:
1. Если бой закончился за один раунд проигрышем атакующего, то он получает сообщение о том, что связь с флотом прервалась и не получает никакой дополнительной информации (включая ссылку на боевой отчет)
2. Теперь все участники боя (включая членов САБа и хозяинов флотов в удержании) получают одинаковые письма (кроме случая, описанного в п.1)
3. Уведомление о бое всегда содержит потери атакующих и оброняющихся и сведения о поле обломков
4. Сведения о вывозе ресурсов с планеты добавляются в отчет только при выигрыше атакующих
5. Уведомления теперь корректно окрашиваются для всех участников боя: красным, если участник проиграл, зеленым - если выиграл, оранжевым - в случае ничьи
6. Все числа в уведомлении теперь форматируются
[~] Отладка: Теперь при отключенной глобальной отладке не генерируется лог запросов
[~] Обновление: Автоапдейтер на время работы отключает отладку вне зависимости от глобальных настроек
[~] Обновление: Оптимизирована работа апдейтера для апгрейда с 25-28 релизов
[~] Обновление: Апдейтер использует собственные процедуры запросов к БД
[~] Обновление: Ускорен автоапдейтер при повторном запуске на уже сконвертированных таблицах
[~] Настройки: Включение защиты планет от атак доступно только для Администраторов во избежание злоупотреблений
[~] Флоты: Переупорядочен список кораблей
[~] Новапедия: Отредактировано короткое описание большого транспорта
[~] Офицеры: Уровень офицеров указывается и при максимальном уровне
[~] Админка/Бан: По умолчанию включена галочка РО и выставлен срок бана в 3 дня
Бан и разбан объединены в один пункт меню и на одну страницу интерфейса
[~] Админка/Меню: Объединены разделы "Планета" и "Луна" в раздел "Вселенная"
Под названием сервера добавлены часы серверного времени
[~] Боевой отчет: Если в результате боя появилась луна, то в отчет пишется её имя, а не имя планеты, на орбите которой она была создана
[~] Вселенная: Теперь при создании луны с орбиты списывается количество обломков, из которых сформировалась луна
[%] Вселенная: Исправлена ошибка создания новой планеты при регистрации, возникающая при определенных настройках MySQL
[%] Настройки: Исправлена ошибка сохранения настроек, возникающая при определенных настройках MySQL
[%] SQL: Исправлена ошибка с индексами в таблице users
[%] Обслуживание: Исправлена ошибка при обслуживании таблицы Альянсов
[%] Локализация/Английский: Исправлены баги в локализации
[@] Логи: Изменения темной материи вынесены из глобального лога в отдельную таблицу. Это существенно облегчило поиск неисправностей на сервере и подозрительных действий пользователей. Старые записи перенесены в отдельную таблицу
[@] БД: Все существующие таблицы сконвертированы в UTF8
[@] БД: Все существующие таблицы переведены на InnoDB
[@] sn_timer: Таймер корректно работает с очередью, в которой количество юнитов больше 1
[@] Сообщения: Переработаны файлы локализации
[@] Общие: Устаревшая функция SYS_mysqlSmartEscape заменена на соответствующие
[@] Общие: Устаревшие массивы $pricelist, $resources, $reslist, $sn_groups, $CombatCaps заменены в коде на $sn_data
[@] Обслуживание: Корректно пересчитывается количество аккаунтов в БД
Автором всех версий игрового движка является Gorlum