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

  #13  
Старый 07.01.2026, 15:45
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Если вам нужно переписать lua/cleo, то просто берете таблицу опкодов:

Таблица соответствия опкодов

wiki.blast.hk


Ищите опкод, и если он является GTA-шным, а не добавляется SAMPFUNCS-ом (а setGameKeyState как раз таки является), то подключаете plugin-sdk в свой проект и вызываешь его при помощи функций псдк:

Другое - С/С++ Вопрос - Ответ

Первый пример кода - не код на языке C++ А как у него работает?

www.blast.hk


Единственное, в том примере не указано то, как получать возвращаемое значение - надо лишь после всех аргументов, передать указатель на переменную, в которую должен записаться результат.

По поводу опкодов SF и setGameKeyState в частности, то тут нужно самому реверсить sampfuncs.asi и смотреть реализацию этих опкодов. Проще всего это сделать в IDA через: Search -> Sequence of bytes -> Ввести нужный опкод и выставить настройки, как на скрине



-> Найти строку, где будет push ваш_опкодh и далее перейти в каллбек функцию.



Чтобы тебе не тратить время, сам нашел реализацию клавиши:

C++:





Код:
int
__stdcall
sub_10082582
(
CScriptThread
*
a1
)
{
unsigned
int
Int
;
// esi
Int
=
CScriptThread
::
GetInt
(
a1
)
;
*
(
_WORD
*
)
(
2
*
Int
+
0xB73458
)
=
CScriptThread
::
GetInt
(
a1
)
;
return
0
;
}
 
Ответить с цитированием