я только что построила hl.dll с помощью visual studio 2022 и half life sdk updated для visual studio 2017 и когда я нажимаю начать новую игру и выбераю уровень сложности игра вылетает с ошибкой
assertion failed!
program: C:\игры\Xash3D\valve\dlls\hl.dll
expresion: nullptr != g_pFileSystemModule
Line: 53
for information on how your program can cause an assertion failure see the visual c++ documntation on asserts
(press retry to debug the application - JIT must be enabled)
я нашла в utils.cpp строку 53 о которой говорилось в ошибк и убрала от туда строчку nullptr != g_pFileSystemModule но тогда игра просто вылетает без ошибки
я пыталась сделать скриншот ошибки но не получается, по этому я его переписала
Если вы хотите делать мод однозначно под Ксаш, то выбирайте одно из:
* делать на нашем HLSDK Portable
* выкинуть из своего кода всё что связано с g_pFileSystemModule, g_pFileSystem и так далее
* дождаться пока я пока поддержку filesystem_stdio в Ксаше доделаю
Ekaterina Half-Life SDK updated for use with VS2017 не совместим с движками Xash3D и Xash3D FWGS. В твоём случае проблема в следующем: в этих обновлённых исходниках используется библиотека filesystem_stdio.dll, которой в ксашах просто нет, в ксашах интерфейсы времён WON-версии Half-Life для работы с файлами. Выхода два:
1. Найти, где подгружается модуль g_pFileSystemModule и вырезать весь этот код и то, что он за собой тащит. Если он где-то используется, то заменить его старыми макросами LOAD_FILE_FOR_ME и т.д., я их на память не помню.
2. Использовать HLSDK из репозитория Valve. Эти исходники собираются 2022 студией после нескольких правок: для клиента нужно отключить предупреждения 4996;4091;4018, для сервера 4996;4477;4474;4091. В файлах util_vector.h и extdll.h нужно заменить #include "math.h" на #include <cmath>, а лучше вот так для обратной совместимости со студиями младше 2015:
C++ Source Code:
#if _MSC_VER >= 1900 // C++11 Compatible for Visual Studio 2015 and later.
#include <cmath>
#else
#include"math.h"
#endif
Вроде больше ничего нет, что мешало бы компиляции.
Ekaterina писала: а как найти что связяано с g_pFileSystemModule, g_pFileSystem и так далее?
CTRL+SHIFT+F открывает окно поиска по проекту. Выбираешь областью поиска либо всё решение (Entire solution), либо текущий проект (Current project). Вбиваешь нужный текст, и в результатах поиска увидишь файл, содержимое строки, номер строки.
Это для новичка тяжело, лучше скачать совместимый SDK. Из репозитория Valve. Можно тот, ссылку на который дал a1batross, но его с полпинка из-под Visual Studio не соберёшь, потому что нет проектов. Тоже неудобно для новичка.