- 1
- 0
Всем привет!
Работаю над тем, чтобы подключить поддержку enhanced IMG archives из fastman92 limit adjuster в MTA.
Она поддерживает шифрование архивов и активируеться и .ini файле: Enable handling of new enhanced IMG archives = 1
В исходнике limit adjuster есть публичные функции для работы с этими архивами:
ну и я поставил хук на функцию gta, которая отвечает за подгрузку IMG архивов ( LoadCdDirectory )
теперь архивы читает, но уже при входе в игру возникают краши при загрузке моделей.
Чесно говоря, я думаю что проблема где-то в парамитрах которые я передаю, менял их но лучше от этого не стало.
Вот ссылка на код экспортных функций от FLA и струкрур - https://github.com/fastman92/fastman92_limit_adjuster/blob/master/fastman92 limit adjuster/fastman92 limit adjuster/Source files/ForOtherProjects/FLA_required/Exports.h
Может есть кто-то, кто работал с этой шифровкой и знает в чем проблема. Вот мой код использования LoadCdDirectoryInGTASA от FLA
Работаю над тем, чтобы подключить поддержку enhanced IMG archives из fastman92 limit adjuster в MTA.
Она поддерживает шифрование архивов и активируеться и .ini файле: Enable handling of new enhanced IMG archives = 1
В исходнике limit adjuster есть публичные функции для работы с этими архивами:
публичные функции из FLA:
// Returns true if handling of enhanced IMG archives is enabled
F92_LA_API bool F92_LA_CONVENTION IsHandlingOfEnhancedIMGarchivesEnabled();
// Loads CD directory in GTA SA. Works only if enhanced IMG archives are enabled!
F92_LA_API void F92_LA_CONVENTION LoadCdDirectoryInGTASA(
const tImgDescriptorInGTASA *pIMGdescriptor,
int imgId,
tGTASAimgLoadingCall* pLoadingCall
);
ну и я поставил хук на функцию gta, которая отвечает за подгрузку IMG архивов ( LoadCdDirectory )
теперь архивы читает, но уже при входе в игру возникают краши при загрузке моделей.
Чесно говоря, я думаю что проблема где-то в парамитрах которые я передаю, менял их но лучше от этого не стало.
Вот ссылка на код экспортных функций от FLA и струкрур - https://github.com/fastman92/fastman92_limit_adjuster/blob/master/fastman92 limit adjuster/fastman92 limit adjuster/Source files/ForOtherProjects/FLA_required/Exports.h
Может есть кто-то, кто работал с этой шифровкой и знает в чем проблема. Вот мой код использования LoadCdDirectoryInGTASA от FLA
Код функци хука:
typedef void(__stdcall* ptrLoadCdDirectoryInGTASA)(const tImgDescriptorInGTASA* pIMGdescriptor, int imgId, tGTASAimgLoadingCall* pLoadingCall);
ptrLoadCdDirectoryInGTASA LoadCdDirectoryInGTASA = nullptr;
bool MyOnSpecialEntry(tImgFastman92GTASAdirectoryEntry* pEntry, void* pUserData)
{
return false;
}
bool MyOnEntry(tImgFastman92GTASAdirectoryEntry* pEntry, void* pStreamingInfo, bool isFileSizeSetUp, void* pUserData)
{
if (pEntry == nullptr || pStreamingInfo == nullptr || pUserData == nullptr)
return false;
return true;
}
void LoadCdDirectory_Hooked(char const* ArchiveName, int archiveID)
{
tImgDescriptorInGTASA descriptor = {};
strncpy(descriptor.m_name, ArchiveName, sizeof(descriptor.m_name) - 1);
descriptor.m_name[sizeof(descriptor.m_name) - 1] = '\0';
descriptor.m_bRegister = 1;
descriptor.m_lsn = 0;
tGTASAimgLoadingCall loadingCall = {};
loadingCall.dwSize = sizeof(tGTASAimgLoadingCall);
loadingCall.pUserData = nullptr;
loadingCall.ReadEntry = nullptr;
loadingCall.OnSpecialEntry = nullptr;
loadingCall.OnEntry = &MyOnEntry;
MessageBoxA(NULL, buffer, "[REPORT-1.2] LoadCdDirectory_Hooked", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
LoadCdDirectoryInGTASA(&descriptor, archiveID, &loadingCall);
}