Показать сообщение отдельно

  #7  
Старый 24.04.2021, 18:33
PanSeek
Постоянный
Регистрация: 24.06.2016
Сообщений: 912
С нами: 5202871

Репутация: 163


По умолчанию

SF. Как правильно работать с памятью игры (видел гайды, но видимо что-то не то было либо я не понял), вот к примеру как это перевести в C++ из Lua

Lua:





Код:
local
mem
=
require
'memory'
--
mem
.
fill
(
sampGetChatInfoPtr
(
)
+
306
,
0x0
,
25200
)
mem
.
write
(
sampGetChatInfoPtr
(
)
+
306
,
25562
,
4
,
0x0
)
mem
.
write
(
sampGetChatInfoPtr
(
)
+
0x63DA
,
1
,
1
)


Насчет
Код:
std::memcpy
чуть знаю.

Также видел такую функцию в полезных сниппетах для C++

C++:





Код:
void
WriteMemory
(
void
*
address
,
void
*
bytes
,
int
byteSize
)
{
DWORD NewProtection
;
VirtualProtect
(
address
,
byteSize
,
PAGE_EXECUTE_READWRITE
,
&
NewProtection
)
;
std
::
memcpy
(
address
,
bytes
,
byteSize
)
;
VirtualProtect
(
address
,
byteSize
,
NewProtection
,
&
NewProtection
)
;
}


Но где-то принимается более 3-х аргументов.

Получил
Код:
sampGetChatInfoPtr()
оно равно
Код:
0x17924EE0
- если все правильно сделал. Также как я понял оно находится здесь:

C++:





Код:
//SFSAMP.h
//class SAMPFUNCS_API SFSAMP
struct
stChatInfo
*
getChat
(
void
)
;
 
Ответить с цитированием