Project "SuperNova.WS" Release 28 "Chatting Diplomacy Alliance Bashing"
ВНИМАНИЕ!!! ПЕРЕД ОБНОВЛЕНИЕМ СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ И ФАЙЛОВ ДВИЖКА С ТЕМ, ЧТО БЫ МОЖНО БЫЛО ОТКАТИТЬСЯ В СЛУЧАЕ НЕУДАЧНОГО ОБНОВЛЕНИЯ!!!
Project "SuperNova.WS" Release 28 "Chatting Diplomacy Alliance Bashing"
========================================================================
[!] Чат: Полностью переписан внутренний чат.
1. Полностью переписана JS-часть. В частности - AJAX-вызовы теперь осуществляются через jQuery
2. Добавлена заплатка для корректной работы чата в глюкофоксе
3. Добавлена защита на стороне клиента от слишком частых обновлений
4. Полностью переработана PHP-часть чата
5. Корректно показывает заголовок в истории чата - "общий чат" и "чат альянса" соответственно
6. История чата теперь грузиться в виде нормальной страницы СН, а не в виде "обмылка", как раньше
7. Содержимое языкового файла chat.mo отфильтровано и влито в system.mo
8. Множество других добавлений и усовершенствований
[!] Альянсы: Добавленв подсистема дипломатии
Информация о текущих дипломатических отношениях Альянса отображается на странице информации об Альянсе и доступна для просмотра любому игроку
Глава Альянса может начинать переговоры и принимать предложения от других Альянсов, выбрав пункт "Переговоры" в заголовке таблицы дипломатии. Там же можно сделать предложение об изменении отношений другому Альянсу. Нельзя сделать предложение текущих отношений (т.е. если Альянсы находятся в отношениях "Война" нельзя опять предложить отношение "Война"). В общем случае что бы изменилось отношения между Альянсами, другая сторона должна потвердить предложение об изменении по ссылке "Переговоры", доступной главе Альянса (исключения из данного правила изложены ниже).
Отношения между Альянсами бывают следующие:
1. Нейтралитет. Отношение по умолчанию. Нет никаких ограничений или бонусов
2. Война. Отключается система защиты башинга между членами Альянса, находящимися в состоянии войны. Автоматически принимается второй стороной. Подробнее см.ниже в описании защиты от башинга
3. Мир. Рекомендуется выставлять этот статус после заключения пакта о ненападении. С точки зрения движка оно ничем не отличается от "Нейтралитета" и нужно для информирования остального игрового сообщества о неких устных договоренностях - буде в таком информировании возникнет нужда. Альянсы вольны следовать или не следовать данной рекомендации, а
так же решать - хотят они оповестить Вселенную об изменении своих отношений или нет
[!] Антибашинг: Добавлена система защиты от башинга. Защита не дает отправить больше флотов и волн, чем указано в правилах.
Настройки по умолчанию - в течении 24 часов 3 волны по 3 атаки не более 30 минут между атаками в одной волне. Настроить систему защиты от башинга можно через таблицу `config` - группа параметров fleet_bashing_*. Установка параметра fleet_bashing_attack в 0 означает полное отключение системы защиты.
1. Атакой считаются миссии: "Атака", "Совместная атака" и "Уничтожить луну". Миссия "Ракетная атака" атакой не считается
2. Учитываются флоты в полете. Т.е. если игрок уже запустил две волны и еще одна находится в полете - он больше не сможет запускать флоты.
3. Атаки засчитываются по факту - т.е. если полностью отменить волну, находящуюся в полете, игрок сразу же сможет послать на планету новые флоты, не дожидаясь возвращения волны
4. Атаки учитываются вне зависимости от результата (выигрыш, ничья, проигрыш)
5. При САБе атака засчитывается ВСЕМ нападающим - дабы избежать "карусели", т.е. когда несколько игроков по очереди запускают САБы, а остальные к ним присоединяются
6. Все флоты одного игрока в одном САБе считаются как один флот
7. Если Альянсы находятся в отношении "Война", защита от башинга не работает
8. Объявление войны не требует согласия. Это означает, что когда Альянс А предложил Альянсу Б отношение "Война", это предложение принимается автоматически и отношения устанавливаются сразу для обоих Альянсов
9. Выход из состояния войны требует согласия обоих сторон
10. Выход из состояния войны обратной силы не имеет! Т.е. если было объявлено перемирие когда планеты одного из Альянсов находятся под атакой, то флоты все равно долетят и совершат нападение - какое бы ни было новое отношение между Альянсами (если, конечно, атакующий их не отзовет)
[!] Экономика: Изменена выработка энергии.
Во-первых - модификатор скорости игры теперь не действует на энергию.
Во-вторых - температура планеты влияет на выработку солнечных электростанций
В-третьих - Производство энергии на термоядерной электростанции теперь считается по формуле оффа:
30 * [Э] * (1,05 + [Е] * 0,01) ^ [Э]
где Э - уровень электростанции, Т - уровень энергетической технологии
В-четвертых - энергетическая технология больше не дает дополнительный бонус к производительности электроэнергии
Выработка энергии изменена исходя из следующих правил:
1. Электростанция может поддерживать одну шахту и один синтезатор рудника того же уровня (взято с оффа)
2. Формула выработки термоядерной электростанции взята с оффа
3. Средняя температура на планете - 20 градусов (это планеты с минимальной температурой 0 градусов и максимальной 40 градусов). На такой планете эффективность солнечной электростанции будет 100%
[+] Интерфейс: В списках летящих флотов к количеству кораблей во флоте добавляется в конце знак "+" если флот везет ресурсы
[+] Обзор Империи: Добавлена температура планеты. В колонке ИТОГО - минимальная и максимальная среди всех температур
[+] Новости: Добавлена возможность массовой рассылки новости всем игрокам
[+] Экономика: Изменена схема работы МИС. Теперь МИС работает следующим образом:
1. По каждой планете вычисляется эффективный уровень исследования (ЭУИ) = уровень лаборатории / (0,5 ^ уровень нанитки)
2. Планеты сортируются по эффективному уровню
3. Отсекаются планеты с уровенм лаборатории, недостаточным для проведения данного исследования
4. Выбирается верхние (уровень МИС + 1) планет в списке и суммируется ЭУИ этих планет
5. Получившееся число подставляется в формулу вычисления времени исследования
Следствия:
1. Нанолаборатория теперь увеличивают эффективность лаборатории только на той планете, на которой они расположены
2. Время исследования теперь одинаково на всех планетах. На некоторых планетах чуть больше, на некоторых - чуть меньше, но в среднем - лучше, чем было раньше
3. Имеет смысл держать только (уровень МИС + 1) планет с лабораториями. Остальные просто не будут подключаться.
3.1. Примечание к следствию 3 - собственно, так было и раньше - все равно исследование могло проводиться только на одной планете
[+] Топбар: Переработана ячейка сообщений
[+] Топбар: Добавлено количество флотов и экспедиций в полете и всего.
Количество флотов и экспедиций в полете интерактивно: оно автоматически изменяется в соответствие с происходящими событиями - прибытие, возвращение и окончание миссии флота (как они должны были произойти на момент загрузки страницы). При наведении курсора на соответствующую ячейку всплывает подсказка с описанием ближайшего события
[+] Список планет: Справа от иконки планеты добавлены три колонки, показывающие процент производительности шахт и синтезаторов: серый - шахта металла, голубой - синтезатор кристаллов, фиолетовый - синтезатор дейтрия. Высота колонки пропорциональна проценту производства, а фон кодирует диапазоны: желтый - 80-90%, оранжевый - 50-70%%, красный - меньее 50%. На высоту и фон колонки влияет ИСКЛЮЧИТЕЛЬНО процент производства, выставленный на странице "Ресурсы"
[+] Империя: Цифра производства ресурсов теперь кодируется цветом аналогично фону колонки прозиводства ресурсов (см. выше)
[+] Свезти ресурсы: Добавлен JS-счетчик общего количества свозимых ресурсов с учетом чекбоксов
[+] Свезти ресурсы: Добавлено отображение количества необходимых ресурсов при переходе по кнопке "Свезти ресурсы" со страницы постройки
[+] Император: Добавлена дата регистрации игрока: "Император [Имярек] с [дата]"
[~] Экономика: Энергия считается более аккуратно
[~] Экономика: Изменена формула расчета МИС. Теперь нанолаборатории на планетах, включенных в МИС так же работают
[~] Вселенная: Правильно считается минимальная и максимальная температура луны
[~] Вселенная: Стартовая планета теперь имеет температуру 0/40
[~] Чат: Ники модераторов (auth_level=1) и операторов (auth_level=2) в чате теперь тоже выделяются. По умолчании соответственно зеленым и красным цветом
[~] Новости: Чекбокс "Разослать новость игрокам" включен по умолчанию
[~] НоваПедия: "Ракетный двигатель" переименован в "Химический", а "Импульсный" - в "Ионный". Для них полностью изменено описание. Так же изменено соответствующе описание кораблей.
[~] HTML: Исправлен хидер, что бы быть W3C-compliant
[~] Флоты: Страница 0 - перемещена кнопка "Дальше" на одну строку вверх. Добавена кнопка "Свезти ресурсы"
[~] Список забаненных: Полностью переписан. Список теперь сортируется по возрастанию даты бана - последние забаненные появляются в начале списка. Добавлено отображение разбанов
[~] Чат: Добавлена трансляция в смайлы сочетания "
" - :smile
[~] Произведено разделение между "Релизом" и "Версией" в интерфейсе пользователя. "Релиз" - это крупное обновление движка, выкладываемое в виде одного файла в общий доступ. Версия - небольшое обновление, недостаточное для смены номера релиза. Подробнее об этом можно прочесть в файле /docs/html/developer.html
[-] Флоты: Удалена ссылка на редактирование закладок со страницы 1 - теперь закладки можно редактировать через левое меню
[%] Рапорты: На странице просмотра рапортов максимальное количество в поле ввода кода выставлено в 32
[%] Флоты: Теперь при возврате последнего флота в САБе САБ корректно уничтожается
[%] Ракеты: Исправлена ошибка в процедуре ракетной атаки - технологии щитов и брони были перепутаны местами
[%] Экономика: Исправлен глюк с невычитанием дейтрия при отрицательном балансе
[%] JS: Исправлен глюк в скрипте таймера из-за которого не отсчитывало назад ресурсы при переполненных складах
[%] Империя: Исправлена ошибка отображения маскимального количества полей на луне
[%] НоваПедия: Исправлена очепятка из-за которой в списке кораблей на химических двигателях не показывался переработчик
[%] Фаерфокс: Исправлен ВНЕЗАПНЫЙ отказ глюкобага отправлять сообщения в чат. Тормозилла - так поддерживать! Ибо то, что висит можно только поддерживать.
[%] Альянсы: Исправлены ошибки редактирования информации Альянсов
[%] Статистика: Исправлено неправильно отображение даты последнего обновления статистики при просмотре статистики Альянсов
[%] Чат: Исправлена ошибка парсинга смайлов "
" и "
" (код последнего заменен на ":wink:" из-за непоняток с парсингом)
[%] Админка: Исправлены сообщения "Page not found" в формах
[@] БД: Изменена структура таблицы банов banned
[@] Система: Добавлена процедура ежедневного обслуживания: чистка таблицы башинга, чистка таблицы САБ
[@] Админка: Проставлены права доступа к отдельным страницам в зависимости от уровня.
1. Модератор (authlevel=1) имеет доступ к следующим страницам: overview, activeplanet, banned, changelog, planetlist, statbuilder, tools, md5enc.
Он может: видеть список игроков онлайн и их активность, видет список и активность планет, вручную обновлять статистику, банить и разбанивать пользователей
2. Оператор (authlevel=2) дополнительно имеет доступ к следующим страницам: add_building, add_def, add_money, add_moon, add_research, add_ship, del_building, del_def, del_money, del_research, del_ship, moonlist, showfliyingfleets.
Дополнительно к функциям модератора он может: добавлять и убирать на планетах здания, корабли, защиту, ресурсы; добавлять и убирать технологии игрока; видеть все луны и добавлять луны к планетам; видеть и редактировать флоты в полете
3. Администратор (authlevel=3) имеет доступ ко всем страницам, включая delete_user, admin_darkmatter, errors, maintenance, maintenance_ajax, messagelist, messall, admin_chat, paneladmina, planetcompensate, settings, userlist.
Дополнительно к функциям оператора он может: добавлять и убирать ТМ у игроков; видеть полный список игроков с IP-адресами; удалять игроков; запускать процедуру обслуживания БД; просматривать и удалять личные сообщения; просматривать и удалять сообщения чата; просматривать и удалять сообщения системы логов; изменять права пользователей; изменять настройки игры; возмещать игроку стоимость затрат на планету
[@] Админка: Введена дополнительная защита от взлома. Теперь член команды игры не может назначить кому-либо уровень доступа, равный или больший своего. Таким образом через админку невозможно назначить второго Администратора. Однако это можно проделать напрямую в БД
[@] Админка: Исправлено ложное срабатывание системы определения взлома при обновлении пользователем страницы "Флоты в полете" сразу после отдачи команды "Обратно" последнему из текущих флотов. Так же в предупреждение теперь логгится состав флот, который пытался вернуть пользователь
[@] Разработка: добавлен каталог '.local' для облегчения разработки. Файлы в этом каталоге игнорируются GIT-ом, но при этом корректно подключают внешние файлы для обработки и выполнения
[@] Разработка: добавлена процедура sn_db_perform(). Отныне для вставки одиночных записей следует использовать только её. См. файл db.php
...а так же множество других изменений, исправлений и багфиксов. Полный чейнджлог
Репозитории
Архив инсталляции для загрузки - для тех, кто не осилил GIT
Ссылка на загрузку исходников
Ридми
Инструкция по обновлению:
=======================
Обновление до последней версии
==============================
0. ВНИМАНИЕ!!! ПЕРЕД ОБНОВЛЕНИЕМ СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ И ФАЙЛОВ ДВИЖКА С ТЕМ, ЧТО БЫ МОЖНО БЫЛО ОТКАТИТЬСЯ В СЛУЧАЕ НЕУДАЧНОГО ОБНОВЛЕНИЯ!!!
1. Залогиньтесь в игру через аккаунт с правами Администратора
2. ВНИМАНИЕ!!! Перед обновленем сервер ОБЯЗАТЕЛЬНО нужно остановить. Делается это так: под Администратором в левом меню появится пункт "Администратор" - кликните на него. В админском меню выберите пункт "Настройки", поставить галочку "Отключить игру", нажать кнопку "Сохранить" в самом низу страницы. Только после этого можно производить обновление - иначе результат может быть далеким от ожидаемого.
3. Если у вас включено кэширование темплейтов, нужно удалить все файлы в каталоге /cache
4. Теперь обновите файлы движка
4.1. Если вы ставили игру из GIT-репозитория, то на сервере в корневом каталоге игры выполните команду
git pull
4.2. В любом другом случае - загрузите на сервер обновленную версию движка
5. ДОЖДИТЕСЬ, ПОКА НОВАЯ ВЕРСИЯ ДВИЖКА ОКАЖЕТСЯ НА СЕРВЕРЕ! Попытка обновления в процессе копирования файлов или загрузки их из репозитория GIT могут привести к непредсказуемым результатам
6. Переключитесь в браузер, в котором вы залогинены под Администратором и выберите пункт меню "Обзор". Дождитесь загрузки страницы - в этом время происходит обновление БД
7. И, наконец, после всех этих действий игру можно опять включить (Администратор -> Настройки, снять галочку "Отключить игру" и сохранить изменения).