Данная новость является вольным переводом официальной заметки на сайте SourceMod с замечаниями и правками от переводчика
Оригинал можно прочитать здесь
Оригинал можно прочитать здесь
Новой стабильной веткой SourceMod теперь является версия 1.10. Как и всегда, некоторое время для старой ветки 1.9 будут доступны обновления геймдаты.
Новая версия включает в себя правки сообщества от следующих классных людей: headline, SlidyBat, PerfectLaugh, quasemago, Technoblazed, InvexByte, TiBarification, Pelipoika, Peace-Maker, thewavelength, rumblefrog, jason-e, Kailo, CrazyHackGUT, rsKliPPy, fakuivan, maximsmol, Silenci0, hydrogen-mvm, Hexer10, ddhoward, Bara, PowerLord, TheByKotik, komashchenko, BotoX, b3none, DJPlaya, PerfectLaugh, 404UNFca, JoinedSenses, TheDS1337, Batfoxkid, MartLegion, FortyTwoFortyTwo и Einyux.
Основные моменты этого релиза включают в себя:
- Новый синтаксис для структур, оформленных с помощью enum. Подробнее - на нашей вики.
- Поддержка 64-битных версий SRCDS.
- Новые нативы для получения большего объёма информации касательно трассировки.
- Обновлённая библиотека MySQL с поддержкой кодировки
utf8mb4. - Новая команда для перезагрузки кеша
databases.cfgбез перезапуска сервера:sm_reload_databases - Повышение скорости компиляции за счёт многочисленных исправлений и изменений.
- Изменение структуры бинарного файла плагина для будущих улучшений языка.
- Улучшение стабильности и качества кода ядра.
- Улучшение методмапов и документации API.
Изменения SourceMod
- [Исправление] Работа над багом CS:GO, связанный с таблицами строк (см. PR #1046)
- [Исправление] Упрощение внутренностей логгера (см. PR #691)
- [Исправление] Ошибка, вызывающая падение процесса из-за NULL в указателях на строки (см. PR #906) *
- [Исправление] Возможность устанавливать
-1/nullв поляхattackerиinflictorв хуке движкаOnTakeDamage - [Исправление]
CompileRegex()не всегда устанавливал корректный код ошибки (см. PR #775) - [Исправление] Компиляция с использованием Visual Studio 2017 и выше
- [Исправление] SDKHooks: Сброс глобального идентификатора хука при снятии хука в Sourcehook (см. PR #916)
- [Исправление] Предотвращение ошибок, связанных с использованием FrameIterator (см. PR #949) *
- [Исправление] Улучшение текста ошибки для
EmitSound()(см. PR #787) - [Исправление]
BfRead.BytesLeftне был необязательным (см. PR #945) * - [Исправление] IBinTools: Блокировка загрузки несовместимых версий интерфейсов (см. PR #979)
- [Исправление] Исправление неправильного пути к файлу
matchmaking_ds, который использовался в некоторых случаях (см. проблему #1006) - [Исправление] Удаление лишнего использования
MAPLIST_FLAG_NO_DEFAULTв стандартных плагинах (см. PR #870) - [Исправление] Исправление ошибки при переходе на резервную секцию
defaultв маплистах (см. PR #923) - [Исправление] Исправление неправильного расчёта оставшегося времени после
mp_restartgameв CS:S и CS:GO (см. PR #1072) - [Исправление] Новые нативы methodmap теперь опциональны (см. PR #867)
- [Исправление] Удаление повторного форматирования в
ReplyToCommand()(см. PR #932) * - [Исправление] Опечатка в PassType (см. PR #1018)
- [Исправление] Улучшение описания в консольных переменных плагина номинаций карт (см. PR #758)
- [Исправление] Улучшение описания у нативов
CharToLower()иCharToUpper()(снова) (см. PR #750) - [Исправление] Исправление ошибки очередности параметров в документации к
CancelClientMenu()(см. PR #982) - [Исправление] Улучшение документации в реализациях methodmap (см. PR #788)
- [Исправление] Использование
GetClientAuthId()вFormatUserLogText()(см. PR #805) - [Исправление] Добавлен отсутствующий вызов
MarkNativeAsOptional()дляSetAuthIdCookie()(см. PR #879) - [Исправление] Отправка сообщений
ShowActivity()для клиентов SourceTV (см. PR #813) - [Исправление] Исправление ошибок, вызываемых
sm_helpпри вызове во время процесса подключения (см. PR #723) - [Исправление] basevotes: Увеличение размера буфера для карт Workshop (см. PR #956)
- [Исправление] Исправление неправильного форматирования
Vote Delay Minutesкогда задержка около 60 секунд (см. PR #1009) - [Новое] Поддержка 64-битной версии CS:GO для Linux и MacOS (см. PR #705)
- [Новое] Добавление нативов трассировки (
TR_EnumerateIntities(),TR_EnumerateEntitiesHull(),TR_ClipRayToEntity(),TR_ClipRayToEntityEx(),TR_ClipRayHullToEntity(),TR_ClipCurrentRayToEntity(),TR_ClipCurrentRayToEntityEx()) (см. PR #754) - [Новое] Добавление натива
Tr_GetHitBoxIndex()(см. PR #1085) - [Новое] Добавление натива
RemoveEntity()(см. PR #745) - [Новое] Добавление команды
sm_reload_databases(см. PR #773) - [Новое] Добавление поддержки 64-битных целых чисел в методмапе Protobuf (см. PR #943)
- [Новое] Разрешение различных значений для платформы в секции
Keysв геймдате (см. PR #765) - [Новое] Открытие меню при наличии нескольких карт на неопределенный фильтр для команды
!nominate(см. PR #983) - [Новое] Добавление натива
Regex.MatchAll()и исправление поведенияMatchRegex()для соответствия документации (см. PR #767) - [Новое] MySQL: Поддержка нескольких наборов результатов в подготовленных запросах (см. PR #825)
- [Новое] Добавление натива
LogStatckTrace()(см. PR #685) - [Новое] Добавление натива
Protobuf.HasField() - [Новое] Добавление методмапа
CommandIterator, включающийCommandIterator.Pluginдля получения плагина, зарегистрировавшего команду (см. PR #819) - [Новое] Добавление отсутствующего возвращаемого значения в документации для
CreateDirectory() - [Новое] Исправление различных регрессий и неопределенного поведения (см. PR #1022)
- [Улучшение] Обновление поддержки игр для CS:GO, BMS, Empires, NMRiH, Insurgency, PVKII, IOSoccer, ZPS *
- [Улучшение] Перемещение семантики для
StringHashMap(см. PR #589) - [Улучшение] Удаление блокировки конфигурации БД (см. PR #791)
- [Улучшение] Добавление описания для
TFCond(см. PR #1005) - [Улучшение] Добавление методмапа
Profiler(см. PR #814) - [Улучшение] Добавление методмапа
GameData(см. PR #766) - [Улучшение] Добавление методмапов
GlobalForwardиPrivateForward(см. PR #1004) - [Улучшение] Добавление методмапа
Cookie(см. PR #1012) - [Улучшение] Добавление геттера для
Event.BroadcastDisabled(см. PR #946) - [Улучшение] Добавление методов
Sort()иSortCustom()в методмапArrayList(см. PR #1003) - [Улучшение] Добавление метода
File.Flush()(см. PR #1056) - [Улучшение] Обновление
TF2_IgnitePlayer()для поддержки установки длительности горения (см. PR #1038) - [Улучшение] Добавление вспомогательного шаблонного класса для повышения безопасности типов для вызовов функций (см. PR #965)
- [Улучшение] Добавление дополнительных специфичных для TF2 константных
DMG_значений (см. PR #756) - [Улучшение] Добавление дополнительного идентификатора нестандартного убийства для TF2 (см. PR #972)
- [Улучшение] Добавление щита и отталкивающая мина в
cstrike.inc(см. PR #991) - [Улучшение] Разрешение возвращать любые значения в каллбеках нативов (см. PR #857)
- [Улучшение] Добавление
RequestFrameCallbackс опциональным параметром для данных (см. PR #1068) - [Улучшение] Обновление
sm_ban,sm_kickиsm_mapдля отображения меню, если выполняются без аргументов (см. PR #838) - [Улучшение] Использование кол-ва нулей в зависимости от кол-ва плагинов для вывода в
sm plugins list(см. PR #1027) - [Улучшение] Улучшение текста ошибки для
CreateNative()(см. PR #903) - [Улучшение] Использование настоящей сортировки для списков карт (см. PR #907)
- [Улучшение] Добавление интернационализации (переводов) для basechat и исправление цветов для CS:GO (см. PR #674)
- [Улучшение] Переход сеттеров/геттеров клантегов CS:GO на использование нетпропов + смещение по сигнатуре + смещение (см. PR #922)
- [Улучшение] Стандартизация поиска карт среди движков, подобных TF2 (см. PR #931)
- [Улучшение] Изменение
MultiTargetFilterна typeset, позволяющий использованиеArrayList(см. PR #955) - [Улучшение] Удаление использования оператора
gotoвExtensionSys.cpp(см. PR #729) - [Улучшение] SQL Admin Manager: Чистка кода (см. PR #974)
- [Прочее] Переписывание реализации
DataPack(см. PR #688) - [Прочее] Прекращение использования примитивных функций float в угоду стандартным операторам (см. PR #763)
- [Прочее] Обновление клиентской библиотеки MySQL до версии 5.5 (поддержка кодировки
utf8mb4) (см. PR #786) - [Прочее] Обновление библиотеки SQLite до версии 3.26.0 (см. PR #783 и #935)
- [Прочее] Увеличение размера константы
MAX_NAME_LENGTHдля соответствия константе CS:GOMAX_PLAYER_NAME_LENGTH - [Прочее] Использование безопасного
strcpyгде это возможно (см. PR #784 и #785) - [Прочее] Удаление интерфейса
IDataPack(см. PR #864) - [Прочее] Обновление параметров в примере расширения для более sourcehook-friendly (хз даже как это правильнее всего перевести, чтобы было понятно - прим. переводчика) (см. PR #886)
- [Прочее] Добавление инструкции компилятора
#deprecatedдляGetMaxClients()(см. PR #818) - [Прочее] Добавление инструкции компилятора
#deprecatedдляFormatUserLogText()(см. PR #856) - [Прочее] Очистка кода официальных плагинов (см. PR #777)
- [Прочее] Исправление сборки на GCC 9 (см. PR #1024)
- [Прочее] Добавление инструкции компилятора
#deprecatedдляSQL_QuoteString()(см. PR #792) - [Прочее] Добавление пометки о зависимости
FormatTime()от платформы (см. PR #908)
Изменения SourcePawn
(в этом разделе возможна наибольшая концентрация ошибок и ляпов перевода, т.к. пункты в нём даны сложным техническим языком, и как именно перевести их без потери смысла - сложный вопрос. в данном разделе лучше смотреть приводимые ссылки к ознакомлению и читать шапку обсуждения + дискуссию, чем полагаться полностью на текст. некоторые пункты в переводе убраны насовсем из-за сложности представления - прим. переводчика)
- [Исправление] Исправление ошибки, связанной с инициализацией динамического
char[](см. PR #176) - [Исправление] Исправление утечки типа HEA при использовании оператора
breakв вложенных скоупах (см. PR #207) - [Исправление] Исправление ошибки, связанной с
returnвswitch(см. проблему #236) - [Исправление] Исправление ошибки, приводящей к крашу при индексировании массива с помощью литерала (см. PR #286)
- [Исправление] Исправление ошибки, приводящей к крашу при использовании плохо сформированного if выражения (см. PR #297)
- [Исправление] Исправление ассерта, который срабатывал на неопределенном массиве (см. PR #290)
- [Исправление] Исправление ошибки, приводящей к крашу при включении профилировщика (см. PR #316)
- [Исправление] Уничтожение поддержки нескольких кодировок и исправление ошибки при запуске компилятора, приводившей к segmentation fault (см. PR #238)
- [Исправление] Ослабление проверки типов для неявно прототипированных функций (см. PR #371)
- [Исправление] Исправление опции запуска компилятора
-D(см. PR #259) - [Исправление] Поиск стандартного include-файла в путях с инклудами
- [Исправление] Увеличение счётчика ошибок при срабатывании фатальной ошибки (см. PR #171)
- [Исправление] Исправление segmentation fault в DocGen (см. PR #185)
- [Исправление] Исправление неправильного отладочного
codestartв переменных структуры (см. PR #309) - [Исправление] Исправление регистрации инкрементов/декрементов в интерпретаторе (см. PR #190)
- [Исправление] Исправление анонимной конкретизации методмапа (?!? - прим. переводчика) (см. PR #206)
- [Исправление] Запрет ссылок на неопределенные аргументы массива (см. PR #315)
- [Исправление] Удаление использования
pow10()и прокладки для поддержки libc 2.27+ (см. PR #208) - [Исправление] Исправление некорректного упоминания проблемного файла в тексте ошибки когда отсутствует семиколон (точка с запятой) (см. PR #331)
- [Исправление] Запрет на переопределение typedefs и typesets (см. PR #351)
- [Исправление] Исправление ошибки, когда неиспользованные функции, помеченные
stock, всё равно попадали в бинарный файл (см. PR #366) - [Исправление] Исправление предупреждения когда не-стоковые функции используются стоковыми функциями (?!? - прим. переводчика) (см. PR #352)
- [Новое] Добавлен новый переходный синтаксис для структур (см. PR #287)
- [Новое] Добавлена директива компилятора
#warning(см. PR #170) - [Новое] Добавлена константа
__LINE__(см. PR #180) - [Новое] Добавлены метаданные RTTI и заменены старые секции с отладочными символами (см. PR #210)
- [Новое] Копирование отладочного названия функции в стек для краш дампов (см. PR #159)
- [Новое] Добавление базовой поддержки отладочного API для брейкпоинтов (см. PR #216)
- [Новое] Полная поддержка базовых операций с плавающими числами в
spshell(см. PR #195) - [Новое] Замена поля
codeversionна поле поддерживаемых особенностей (см. PR #198) - [Улучшение] Добавлена оптимизация для
not(см. PR #165) - [Улучшение] С++-фикация кода компилятора
- [Улучшение]Улучшение скорости компиляции
- Улучшение скорости компиляции за счёт оптимизации stgwrite (см. PR #183)
- Оптимизация компиляции для больших глобальных массивов (см. PR #184)
- Переписан лексер (см. PR #264)
- Улучшение производительности компилятора при обработке символов
- Переписано обрезание символов (см. PR #269)
- Полный постоянный переход на UTF-8 (см. PR #270)
- Удаление абстракции
MEMFILE(см. PR #274) - Удаление трёх проходов при кодогенерации (см. PR #277)
- Исправление утечек памяти (см. PR #280)
- Замена макро-листа на хэш-таблицу (см. PR #282)
- Удаление
cmptag(см. PR #260)
- [Улучшение] Упрощение инлайн фреймов выхода (см. PR #345)
- [Улучшение] Расширение семантики в инструкции
RETN(см. PR #192) - [Улучшение] Представление нового способа кодирования массивов
- [Улучшение] Перенос проверок стэка в "function prologue" (см. PR #223)
- [Прочее] Совмещение реализации HALT с интерпретатором и верификатором (см. PR #175)
- [Прочее] Удалены
then,beginиendтокены (см. PR #161) - [Прочее] Удалено
#pragma rational(см. PR #193) - [Прочее] Удалены неиспользуемые константы, вроде
cellbits,charmin(см. PR #360) - [Прочее] Добавлена команда
-v/--versionвspshellс выводом доступности JIT'а (см. PR #203) - [Прочее] Добавлен аргумент компилятора
-z, позволяющий настроить степень сжатия (см. PR #272) - [Прочее] Улучшение тестов (см. PR #204)
- [Прочее] Исправление сборки на XCode 10 и выше (см. PR #326)
- [Прочее] Использование clang-форматирования для проверки стиля кода (см. PR #340)
Большое спасибо Peace-Maker за написание этого новостного поста для нас!
При копировании перевода, пожалуйста, указывайте прямую обратную ссылку на него!
Последнее редактирование: