29 марта вышло новое обновление для
Serious Sam 3: BFE под номером
180038. В данном обновлении
Croteam облегчили жизнь владельцам геймпадов использующих
Linux/
Mac OS, уличили нечестных игроков, серьёзненько поработали над Lua-скриптами (для мапперов) и просто исправили ряд багов.
Список изменений:
- Добавлено временное решение проблемы с драйверами ATI OpenGL из-за которых главное меню и меню загрузки уровня отображаются полностью чёрными.
- Полностью переработана и оптимизирована система шейдеров постобработки. Некоторые эффекты стали работать до 5 раз быстрее.
- Меню выбора уровней стало показывать бОльшие миниатюры уровней и статистику для текущего игрока.
- Исправлен вылет из-за использования Сирианского браслета при включённой поддержки многопоточности.
- Исправлен вылет, происходящий когда игрок берёт флаг в режиме CTF (Захват Флага) и падает в пропасть, играя от 3-го лица при включённой многопоточности в настройках.
- Исправлены полосы, появляющиеся на густом тумане в нескольких метрах от игрока при отключённом сглаживании MSAA.
- Если значение параметра thr_iAffinityStrictness было отлично от стандартного (0), то команда не применялась при запуске игры. Исправлено.
- Fixed the game's affinity strictness leaking into video and audio drivers, if they allow their threads to inherit affinity from main thread. This could potentially improve performance on Linux.
- Сообщение по-умолчанию "program has requested the runtime to terminate in ain unusual way" было заменено новым, которое будет полезным при выявлении проблемы.
- OSX: Добавлены настройки управления в OSX для геймпадов Logitech.
- OSX: Возвращена возможность создания дампов о вылетах и т.д. в OSX.
- Linux+OSX: Исправлена ошибка из-за которой игра не отвечала, вместо того чтобы создать отчёт об ошибке при вылете.
- Linux+OSX: Добавлена поддержка для изменения настроек управления любого типа геймпада. Новые конфиги (.xml файлы) геймпадов могут быть созданы пользователем при необходимости. Для большей информации проследуйте на официальный Wiki.
- Linux+OSX: Добавлены настройки управления для геймпадов Xbox 360, Playstation 3 и Logitech F510/F310/F710.
- Мультиплеер: Исправлена ошибка, если игрок умирает неся флаг в режиме CTF, флаг может безвозвратно упасть в пропасть и т.д. Во всех подобных случаях, теперь флаг возвращается обратно на базу.
- Мультиплеер: Места спауна для красной/синий команды ранее работали только в режиме CTF. Теперь командные места спауна можно использовать во всех командных режимах игры.
- Мультиплеер: Исправлена проблема, когда не отображались сервера в списке серверов в противоборстве/кооперативе, если был использован фильтр серверов в ином режиме игры.
- Мультиплеер: Добавлен детектор спидхака. Игроки, использующие спидхак, будут помечены специальной меткой "читер" в списке игроков.
- Мультиплеер: Клиентам более нельзя подключится к серверу, если установленное время на их компьютере различаются от сервера на более чем один день.
- Editor: Враги размещённые на карте (но ещё не спаунившиеся) неисправно работали у клиентов, если кат-сцена начиналась с первой главы (т.е. сразу в начале уровня). Исправлено.
- Editor: Добавлены команды для вызова эффекта глубины резкости (Depth-of-Field); "efx_fForcedDoFDistance" и "efx_fForcedApertureSize". (Только в целях тестирования!)
- Editor: Исправлена проблема с неправильным отображением освещения на моделях из-за очень-очень большого probe light (скажем, около 20км)
- Editor: Команда wld_strPreferredStartChapter (только для эдитора) может быть использована для упрощения тестирования больших карт.
- Editor: Все команды необходимые для генерация предварительного кэширования ресурсов текстур (используется для подготовки кэша текстур перед кат-сценами) теперь доступны к использованию в последних версиях редактора.
- Scripting: Теперь можно настроить клавиши для определённых действий при помощи Lua-скриптов (забиндить). Подробнее на официальном Wiki.
- Scripting: Добавлены новые макро функции: mth*To*() (где * там Euler, Quaternion, AxisAngle, DirectionVector)
- Scripting: Добавлена новая макро функция: mthDotV3f(), которая считает скалярное произведение двух 3D-векторов.
- Добавлены новые макро функции объектов Puppet для заскриптованных боев: DoRangedAttack() и DoMeleeAttack(). Можно настроить ожидание выполнения этих функций.
- Scripting: Добавлены макро функции SetGoalPoint() и GetBoundingBoxSize() для puppet, которая используется для управления передвижением марионеток до конечных пунктов.
- Scripting: CBaseEntity:InflictDamageToTarget(). Это функция заменяет предыдущие функции нанесения урона и позволяет указать все параметры урона за раз. Заметьте, что в данной функции "self" - источник, а не цель!
- Scripting: Можно фильтровать урон объектам через скрипты. Используйте CBaseEntity::EnableReceiveDamageScriptEvent();Ловите все ивенты ReceiveDamage на данном объекте, и делайте что необходимо в ответ на эти ивенты. Вызывайте HandleDamage() на данном объекте если нужно нанести урон (настраивается по необходимости)
- Scripting: Все LUA-скрипты в Content/SeriousSam3/Scripts/Startup/ запускаются сразу после инициализации меню. Они могут быть перезапущены через консольную команду prjExecuteStartupScripts (работает и в немодифицируемой версии)
- Scripting: После запуска worldscripts.lua все скрипты из Content/SeriousSam3/Scripts/CustomWorldScripts/ пронумерованы и выполнены. (только в редакторе и в модифицируемой)
- Scripting: Новая функция ResolveResource() Преобразует smart-указатель на ресурс в raw-указатель, который можно использовать для вызова функций ресурса (если его класс это позволяет)
- Scripting: Новая скриптовая функция: GetWorld()
- Scripting: Можно динамично создавать объекты из глобальных скриптов. Создайте один или несколько шаблонов используя ресурс Template properties holder, сохраните; В скрипте, используйте глобальную ResolveResource() и CTemplatePropertiesHolder::CreateTemplate() чтобы получить локальный объект CEntityProperties; CEntityProperties::SetPlacement() настроит желаемое положение, после чего CTemplatePropertiesHolder::SpawnEntity() создает новый объект. (Примечания:1. CWorldInfoEntity::LoadResource() динамично подгружает указанный template holder когда необходимо;2. результат ResolveResource() строго локальный!)
- Scripting: Добавлены скриптовые элементы интерфейса: CTextBoxHudElement и CModelHudElement..
- Scripting: Создание элементов HUD теперь позволяет множественные инстанции одного и того же класса скриптового hud-элемента.
- Scripting: Из player puppet с помощью GetHUD() теперь можно вытащить HUD игрока. Используется для управления пользовательскими элементами HUD.
- Scripting: Добавлены Added CPuppetEntity::IsLocalViewer(), CPuppetEntity::IsLocalOperator() для определения игроков, наблюдателей и наблюдаемых.
- Scripting: Добавлен скриптовый ивент ViewerChanged, посылаемый в WorldInfo каждый раз, когда меняется наблюдатель объекта.- Scripting: По удалении объекта посылается скриптовый ивент EntityDeleted
- Scripting: Классу CPlayerPuppetEntity добавлены макро-функции GetPLayerId() и GetPlayerName()
- Scripting: XML-тэг "playerkilled" в логе теперь содержит ID игрока.
- Scripting: Новый тэг "roundstart", содержащий информацию о режиме игры, печатается в лог в начале матча.
- Scripting: Добавлен ивент XML_Log, который ловит XML-сообщения из лога.
- Scripting: Все XML_Log ивенты теперь посылаются в консольные и глобальные скрипты. Ивент Player Chat удалён. Заметьте, что глобальные скрипты теперь имеют доступ к содержимому чата. (используется для посылки удалённых команд в чат)
Об ошибках, недочётах, своих вариантах перевода просьба сообщать при помощи ЛС, спасибо!
Комментарии