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

  #17  
Старый 07.01.2026, 23:36
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от вайега52  

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

Очень хороший ответ. Это именно то что я имел ввиду с большей конкретикой

Цитата:
Сообщение от вайега52  

Для чистоты эксперемента, советую подобное сначала тестить на чистой гта, а потом можно и на амайзинге
Та по общению более чем уверен у него на чистой гта бы сразу получилось. Да и если есть готовые решения проблем быть не может. Это специфика амазинга, и если делать конкретно под него, то сразу. Реализация на чистой гта особо к успеху не приближает.
 
Ответить с цитированием