HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > неправильная сборка hl.dll
когда я нажимаю начать новую игру и выбераю уровень сложности игра вылетает
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ekaterina
Guest

Дата регистрации: Not Yet
Проживает:
: N/A



Half-Life неправильная сборка hl.dll

я только что построила 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 но тогда игра просто вылетает без ошибки

я пыталась сделать скриншот ошибки но не получается, по этому я его переписала

Отредактировано 19-07-2022 в 16:24

Сообщить модератору | | IP: Записан
Сообщение: 210360

Старое сообщение 19-07-2022 16:16
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 516
Возраст: 26

Рейтинг



Если вы хотите делать мод однозначно под Ксаш, то выбирайте одно из:

* делать на нашем HLSDK Portable
* выкинуть из своего кода всё что связано с g_pFileSystemModule, g_pFileSystem и так далее
* дождаться пока я пока поддержку filesystem_stdio в Ксаше доделаю

__________________
Xash3D FWGS форк

Сообщить модератору | | IP: Записан
Сообщение: 210361

Старое сообщение 19-07-2022 16:29
- За что?
Ekaterina
Guest

Дата регистрации: Not Yet
Проживает:
: N/A



а как найти что связяано с g_pFileSystemModule, g_pFileSystem и так далее?

Добавлено 19-07-2022 в 19:46:

и еще что значит выкинуть просто если эту строку убрать игра не запускаетмя

Сообщить модератору | | IP: Записан
Сообщение: 210362

Старое сообщение 19-07-2022 16:46
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



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

Вроде больше ничего нет, что мешало бы компиляции.

Отредактировано Ku2zoff 19-07-2022 в 17:19

Сообщить модератору | | IP: Записан
Сообщение: 210363

Старое сообщение 19-07-2022 17:18
- За что?
Ekaterina
Guest

Дата регистрации: Not Yet
Проживает:
: N/A



спасибо попробую

Отредактировано 19-07-2022 в 17:35

Сообщить модератору | | IP: Записан
Сообщение: 210364

Старое сообщение 19-07-2022 17:20
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Ekaterina писала:
а как найти что связяано с g_pFileSystemModule, g_pFileSystem и так далее?

CTRL+SHIFT+F открывает окно поиска по проекту. Выбираешь областью поиска либо всё решение (Entire solution), либо текущий проект (Current project). Вбиваешь нужный текст, и в результатах поиска увидишь файл, содержимое строки, номер строки.

Это для новичка тяжело, лучше скачать совместимый SDK. Из репозитория Valve. Можно тот, ссылку на который дал a1batross, но его с полпинка из-под Visual Studio не соберёшь, потому что нет проектов. Тоже неудобно для новичка.

Сообщить модератору | | IP: Записан
Сообщение: 210365

Старое сообщение 19-07-2022 17:26
- За что?
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 516
Возраст: 26

Рейтинг



Ku2zoff там есть CMake, в Visual Studio как раз начиная с 2017 уже есть встроенная поддержка. Просто тыкаешь на файлик, оно дальше само.

__________________
Xash3D FWGS форк

Сообщить модератору | | IP: Записан
Сообщение: 210366

Старое сообщение 19-07-2022 17:50
- За что?
Ekaterina
Guest

Дата регистрации: Not Yet
Проживает:
: N/A



я скачала half life master из репозитория valve но как понять где код для клиента а где для сервера?

Добавлено 20-07-2022 в 14:14:

допустим клиент это hl_cdll а сервер это hldll, я отключила все предупреждения, и заменила #include "math.h" на то что вы сказали.

Добавлено 20-07-2022 в 14:20:

теперь кучу раз появилась ошибка

Ошибка C2668 abs: неоднозначный вызов перегруженной функции hldll C:\Users\sukas\Downloads\hlmaster\halflife-master\dlls\bmodels.cpp 553

Добавлено 20-07-2022 в 14:22:

наверное ошибка с функцией abs

Отредактировано 20-07-2022 в 11:18

Сообщить модератору | | IP: Записан
Сообщение: 210372

Старое сообщение 20-07-2022 11:22
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Ekaterina писала:
заменила #include "math.h" на то что вы сказали.

Ложь. Или не в том файле произведена замена.
Цитата:
Ekaterina писала:
Ошибка C2668 abs: неоднозначный вызов перегруженной функции hldll C:\Users\sukas\Downloads\hlmaster\halflife-master\dlls\bmodels.cpp 553

Эта ошибка как раз таки возникает на новых студиях, потому что подключён заголовок math.h вместо cmath в файле extdll.h, строка 69:
C++ Source Code:
// Misc C-runtime library headers
#include "stdio.h"
#include "stdlib.h"
#include "math.h"

Надо вот так:
C++ Source Code:
1
// Misc C-runtime library headers
2
#include "stdio.h"
3
#include "stdlib.h"
4
#if _MSC_VER >= 1900 // C++11 Compatible for Visual Studio 2015 and later.
5
#include <cmath>
6
#else
7
#include "math.h"
8
#endif

У меня всё компилится без проблем. Версия студии 17.2.5, версия Windows SDK 10.0.22000.0.

Отредактировано Ku2zoff 20-07-2022 в 11:50

Сообщить модератору | | IP: Записан
Сообщение: 210374

Старое сообщение 20-07-2022 11:49
- За что?
Ekaterina
Guest

Дата регистрации: Not Yet
Проживает:
: N/A



я так и написала в файле hl_cdll\header files\util_vector.h

#if _MSC_VER >= 1900 // C++11 Compatible for Visual Studio 2015 and later.
#include <cmath>
#else
#include "math.h"
#endif

Компиляция проходит нормально но вылезает ошибка

Ошибка MSB3073 выход из команды "call ..\..\filecopy.bat C:\Users\pavel\Downloads\hlmaster\hlmaster2\halflife-master\projects\vs2010\Debug\hldll\hl.dll ..\..\..\game\mod\dlls\hl.dll
call ..\..\filecopy.bat C:\Users\pavel\Downloads\hlmaster\hlmaster2\halflife-master\projects\vs2010\Debug\hldll\\hl.pdb ..\..\..\game\mod\dlls\hl.pdb
:VCEnd" с кодом 1. hldll C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets 157

Добавлено 20-07-2022 в 14:59:

я ещё переместила папку с кодом в другое место может быть оно из-за этого не компилируется

Добавлено 20-07-2022 в 15:01:

может что то неправильно скачалось

Сообщить модератору | | IP: Записан
Сообщение: 210375

Старое сообщение 20-07-2022 12:01
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32130
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ekaterina писала:
C:\Users\pavel

Опять какой-то троллинг.

Добавлено 20-07-2022 в 15:15:

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

Не надо делать из нас идиотов.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 210377

Старое сообщение 20-07-2022 12:15
-
Тема закрыта Дядя Миша 20-07-2022 в 12:16
Временная зона GMT. Текущее время 05:38. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > неправильная сборка hl.dll
когда я нажимаю начать новую игру и выбераю уровень сложности игра вылетает
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024