Project "SuperNova.WS" Release 34 RC0 "Happy Birthday SuperNova! 3rd anniversary"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[!] Юбилей: 3 года назад 11 июня 2009 года был запущен первый сервер того, что превратилось в Проект "СверхНовая"
[#] Админка: Редактирование характеристик планеты
Модуль 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: Скин приведен в соответствие с текущим положением дел
...а так же множество других изменений, исправлений и багфиксов. Полный чейнджлог
http://supernova.supernova.ws/docs/changelog_dev.txt
Репозитории
https://github.com/supernova-ws/SuperNova#
git://supernova-ws.git.sourceforge.net/gitroot/supernova-ws/supernova-ws
Архив инсталляции для загрузки - для тех, кто не осилил GIT
https://sourceforge.net/projects/supern ... p/download
Ссылка на загрузку исходников
https://github.com/supernova-ws/SuperNo ... ves/master
Ридми
http://supernova.supernova.ws/docs/readme.txt
Основной сайт проекта:
http://supernova.ws
Инструкция по обновлению:
=======================
Обновление до последней версии
==============================
0. ВНИМАНИЕ!!! ПЕРЕД ОБНОВЛЕНИЕМ СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ И ФАЙЛОВ ДВИЖКА С ТЕМ, ЧТО БЫ МОЖНО БЫЛО ОТКАТИТЬСЯ В СЛУЧАЕ НЕУДАЧНОГО ОБНОВЛЕНИЯ!!!
1. Залогиньтесь в игру через аккаунт с правами Администратора
2. ВНИМАНИЕ!!! Перед обновлением сервер ОБЯЗАТЕЛЬНО нужно остановить. Делается это так: под Администратором в левом меню появится пункт "Администратор" - кликните на него. В админском меню выберите пункт "Настройки", поставить галочку "Отключить игру", нажать кнопку "Сохранить" в самом низу страницы. Только после этого можно производить обновление - иначе результат может быть далеким от ожидаемого.
3. Если у вас включено кэширование темплейтов, нужно удалить все файлы в каталоге /cache
4. Теперь обновите файлы движка
4.1. Если вы ставили игру из GIT-репозитория, то на сервере в корневом каталоге игры выполните команду
Код: Выделить всё
git pull
5. ДОЖДИТЕСЬ, ПОКА НОВАЯ ВЕРСИЯ ДВИЖКА ОКАЖЕТСЯ НА СЕРВЕРЕ! Попытка обновления в процессе копирования файлов или загрузки их из репозитория GIT могут привести к непредсказуемым результатам
6. Переключитесь в браузер, в котором вы залогинены под Администратором и выберите пункт меню "Обзор". Дождитесь загрузки страницы - в этом время происходит обновление БД
7. И, наконец, после всех этих действий игру можно опять включить (Администратор -> Настройки, снять галочку "Отключить игру" и сохранить изменения)., нажать кнопку