Ищите опкод, и если он является 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
;
}
Очень хороший ответ. Это именно то что я имел ввиду с большей конкретикой
Цитата:
Сообщение от вайега52
Для чистоты эксперемента, советую подобное сначала тестить на чистой гта, а потом можно и на амайзинге
Та по общению более чем уверен у него на чистой гта бы сразу получилось. Да и если есть готовые решения проблем быть не может. Это специфика амазинга, и если делать конкретно под него, то сразу. Реализация на чистой гта особо к успеху не приближает.