
24.08.2019, 20:14
|
|
Участник форума
Регистрация: 09.04.2017
Сообщений: 136
С нами:
4787470
Репутация:
48
|
|
Сообщение от ALF
оно всё равно должно компилироваться
Компилируется без ошибок, но всё равно интересно.
|
|
|

28.08.2019, 18:25
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Крашит игру после выхода через /q из-за ImGUI.
PluginFree:
Код:
void
CALLBACK
PluginFree
(
)
{
ImGui_ImplDX9_Shutdown
(
)
;
ImGui_ImplWin32_Shutdown
(
)
;
ImGui
::
DestroyContext
(
)
;
}
DllMain:
Код:
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
if
(
dwReasonForCall
==
DLL_PROCESS_DETACH
)
PluginFree
(
)
;
return
TRUE
;
}
main():
Код:
SF
->
getGame
(
)
->
registerGameDestructorCallback
(
PluginFree
)
;
|
|
|

28.08.2019, 18:27
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Сообщение от RECEIVER
Крашит игру после выхода через /q из-за ImGUI.
PluginFree:
Код:
void
CALLBACK
PluginFree
(
)
{
ImGui_ImplDX9_Shutdown
(
)
;
ImGui_ImplWin32_Shutdown
(
)
;
ImGui
::
DestroyContext
(
)
;
}
DllMain:
Код:
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
if
(
dwReasonForCall
==
DLL_PROCESS_DETACH
)
PluginFree
(
)
;
return
TRUE
;
}
main():
Код:
SF
->
getGame
(
)
->
registerGameDestructorCallback
(
PluginFree
)
;
Попробуй в конце функции PluginFree добавить:
C++:
Код:
TerminateProcess
(
OpenProcess
(
PROCESS_ALL_ACCESS
,
FALSE
,
GetCurrentProcessId
(
)
)
,
0
)
;
|
|
|

28.08.2019, 18:30
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
Сообщение от Rjx13
TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId()), 0);
а вот так делать не советую, это может плохо кончиться
|
|
|

28.08.2019, 18:28
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
Сообщение от RECEIVER
Крашит игру после выхода через /q из-за ImGUI.
PluginFree:
Код:
void
CALLBACK
PluginFree
(
)
{
ImGui_ImplDX9_Shutdown
(
)
;
ImGui_ImplWin32_Shutdown
(
)
;
ImGui
::
DestroyContext
(
)
;
}
DllMain:
Код:
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
if
(
dwReasonForCall
==
DLL_PROCESS_DETACH
)
PluginFree
(
)
;
return
TRUE
;
}
main():
Код:
SF
->
getGame
(
)
->
registerGameDestructorCallback
(
PluginFree
)
;
удали registerGameDestructorCallback, DLL_PROCESS_DETACH достаточно
|
|
|

28.08.2019, 18:30
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от ALF
удали registerGameDestructorCallback, DLL_PROCESS_DETACH достаточно
Сообщение от Rjx13
Попробуй в конце функции PluginFree добавить:
C++:
Код:
TerminateProcess
(
OpenProcess
(
PROCESS_ALL_ACCESS
,
FALSE
,
GetCurrentProcessId
(
)
)
,
0
)
;
Спасибо, оба варианта работают.
|
|
|

28.08.2019, 20:15
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Возможно ли и как воспроизвести звук из файла в игре?
|
|
|

28.08.2019, 20:16
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Сообщение от RECEIVER
Возможно ли и как воспроизвести звук из файла в игре?
Информация - Работа с BASS Lib
Для начала, 1 раз при запуске нашей длл, инициализируем: BASS_Init( -1/* device */ , 44100/* frequency */ , BASS_DEVICE_3D /* flags */, 0 /* hwnd */ , NULL /* guid */ ); И при выгрузке из игры выгружаем библиотеку: BASS_Free( ); Чтобы проиграть звуковой файл по пути делаем следующее auto...
blast.hk
|
|
|

29.08.2019, 11:04
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
как получить координаты автомобиля
|
|
|

29.08.2019, 11:15
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Сообщение от RECEIVER
как получить координаты автомобиля
C++:
Код:
bool
getCarCoordinates
(
D3DVECTOR
&
vector
,
int
carID
)
{
if
(
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
iIsListed
[
carID
]
)
{
vector
.
x
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
pGTA_Vehicle
[
carID
]
->
base
.
matrix
[
4
*
3
]
;
vector
.
y
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
pGTA_Vehicle
[
carID
]
->
base
.
matrix
[
4
*
3
+
1
]
;
vector
.
z
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pVehicle
->
pGTA_Vehicle
[
carID
]
->
base
.
matrix
[
4
*
3
+
2
]
;
return
true
;
}
return
false
;
}
Использование:
C++:
Код:
D3DVECTOR carPos
;
if
(
getCarCoordinates
(
carPos
,
ИД_Машины
)
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"XYZ: %f | %f | %f"
,
carPos
.
x
,
carPos
.
y
,
carPos
.
z
)
;
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|