Если вам нужно переписать 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
;
}