SourceMod 1.10 официально стабилен!

Right is Left

Социопат
Команда форума
Сообщения
9,434
Реакции
7,696
Данная новость является вольным переводом официальной заметки на сайте 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.
Все изменения, которые мы произвели в этой версии (замечание: изменения, помеченные знаком звёздочки, были так же перенесены и в SM 1.9):
Изменения 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:GO MAX_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)
На странице загрузки стабильных сборок теперь располагается SM 1.10. Страница с разрабатываемыми сборками теперь ссылается на новый SM 1.11.
Большое спасибо Peace-Maker за написание этого новостного поста для нас!

При копировании перевода, пожалуйста, указывайте прямую обратную ссылку на него!
 
Последнее редактирование:

Right is Left

Социопат
Команда форума
Сообщения
9,434
Реакции
7,696
А что. Есть такая?
Какое-то время, билд SRCDS для CS:GO был 64-битным, насколько мне известно. Но потом откатили обратно на 32-битный.
Есть ли ещё какие-то 64-битные SRCDS, и используются ли они где-либо - без понятия.
 

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
597
Реакции
250
Какое-то время, билд SRCDS для CS:GO был 64-битным, насколько мне известно. Но потом откатили обратно на 32-битный.
Есть ли ещё какие-то 64-битные SRCDS, и используются ли они где-либо - без понятия.
Например клиент 64 битный на линьке его можно стартануть как серв
1571511536738.png
 

HooLIGUN

MatchMaking CS:S
Сообщения
959
Реакции
225
Обновлять можно смело? Плагины не отвалятся?
 

Черная вдова

Участник
Сообщения
2,819
Реакции
646

September

Чиню сервера подорожником
Команда форума
Сообщения
4,405
Реакции
1,975

Right is Left

Социопат
Команда форума
Сообщения
9,434
Реакции
7,696
Смысл есть всегда. Оптимизация лишней не бывает.
 
  • Мне нравится
Реакции: ifx

XAH

Участник
Сообщения
70
Реакции
9
Смысл есть всегда. Оптимизация лишней не бывает.
это все так, но думаю для обычного потребителя можно пока оставить sm1.9 и ждать обновление на арене официально :) ( у кого сервер на арене :)
 
Последнее редактирование:

DiKsOn

Участник
Сообщения
50
Реакции
2
Ребят, кто поможет установить соурс 1.10?
 

Paranoiiik

хачю клиентмод
Сообщения
1,208
Реакции
733
А как же быть с плагинами которые портированы на sourcemod 1.10?
Ну есть уже портированных несколько версий - Click, но они не могут работать с ProcessCMDS, поэтому лично я вот жду, когда MyArena портирует, что они и анонсировали. Там будет всё окей.
 
Сверху