HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #4401  
Старый 06.04.2020, 22:38
Deprecation
Новичок
Регистрация: 30.03.2020
Сообщений: 7
С нами: 3222983

Репутация: 3
По умолчанию

Цитата:
Сообщение от loganhackerdff  

как можно сделать активацию на команду в asi?
C++:





Код:
#define SAMP_INPUT_INFO                0x21A0E8
#define SAMP_FUNC_REGISTERCMD          0x65AD0
BOOL
RegisterChatCommand
(
LPCSTR sName
,
LPVOID lpvFunction
)
{
DWORD dwSAMPAddress
=
reinterpret_cast

(
GetModuleHandleA
(
"SAMP.DLL"
)
)
;
if
(
dwSAMPAddress
)
{
LPVOID lpvInputInfo
=
*
reinterpret_cast

(
dwSAMPAddress
+
SAMP_INPUT_INFO
)
;
if
(
lpvInputInfo
)
{
reinterpret_cast

(
dwSAMPAddress
+
SAMP_FUNC_REGISTERCMD
)
(
lpvInputInfo
,
sName
,
lpvFunction
)
;
return
TRUE
;
}
}
return
FALSE
;
}
/*

    Example:

        LPVOID CommandHandler(LPCSTR sParams)
        {
            // sParams - command parameters.
        }

        RegisterChatCommand("CommandName", CommandHandler);

*/


 
Ответить с цитированием

  #4402  
Старый 07.04.2020, 00:36
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Сообщением ранее искал адрес памяти для клавиш гта и получил ответ. Выполнил следующий код:

C++:





Код:
while
(
bThread
)
{
*
(
int
*
)
(
0xB73458
+
0x3
)
=
255
;
}


Все работает, но довольно часто останавливается, будто на микросекунду отжал клавишу
 
Ответить с цитированием

  #4403  
Старый 07.04.2020, 00:41
Deprecation
Новичок
Регистрация: 30.03.2020
Сообщений: 7
С нами: 3222983

Репутация: 3
По умолчанию

Цитата:
Сообщение от ucciModd  

Сообщением ранее искал адрес памяти для клавиш гта и получил ответ. Выполнил следующий код:

C++:





Код:
while
(
bThread
)
{
*
(
int
*
)
(
0xB73458
+
0x3
)
=
255
;
}


Все работает, но довольно часто останавливается, будто на микросекунду отжал клавишу
Все из за цикла while, возникают несостыковки с основным циклом игры. Как я понял, ты для этих дел создаешь поток, но в твоем случае нужно хукнуть основной цикл игры, и там уже ставить статус клавише. Пример хука можно поглядеть вот тут:

cEntry.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com


cAPI/cHooker/cHooker.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com


cAPI/cHooks/cHooks.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com
 
Ответить с цитированием

  #4404  
Старый 07.04.2020, 01:57
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  

Все из за цикла while, возникают несостыковки с основным циклом игры. Как я понял, ты для этих дел создаешь поток, но в твоем случае нужно хукнуть основной цикл игры, и там уже ставить статус клавише. Пример хука можно поглядеть вот тут:

cEntry.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com


cAPI/cHooker/cHooker.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com


cAPI/cHooks/cHooks.cpp · master · Konstantin Poletaev / API for GTA San Andreas with SAMP

GitLab.com

gitlab.com

Теперь перестал воспроизводить нажатие, хотя любой другой код исполняется

C++:





Код:
SA
->
getSignals
(
)
->
onLoop
+=
[
&
]
(
)
{
if
(
bTest
)
*
(
int
*
)
(
0xB73458
+
0x3
)
=
255
;
}
;
 
Ответить с цитированием

  #4405  
Старый 07.04.2020, 02:05
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  



C++:





Код:
*
reinterpret_cast

(
0xB73458
+
0x3
)
=
255
;
// Если не сработает, присвой 128.



Что 255, что 128 - не работает
 
Ответить с цитированием

  #4406  
Старый 07.04.2020, 02:22
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  

Нет возможности сейчас проверить, по крайней мере такой код работает идеально:


C++:





Код:
CreateThread
(
nullptr
,
0
,
[
]
(
LPVOID lpvThreadParameters
)
->
DWORD
{
while
(
true
)
*
reinterpret_cast

(
0xB73458
+
0x3
)
=
255
;
return
0U
;
}
,
nullptr
,
0
,
nullptr
)
;



Это тоже останавливает
 
Ответить с цитированием

  #4407  
Старый 07.04.2020, 02:27
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  

Попробуй именно технику отжатия/зажатия, т.е присвоить 0/128.
Ну если так сделать, то оно повторяет это. Персонаж по шагу двигается
 
Ответить с цитированием

  #4408  
Старый 07.04.2020, 02:31
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  

Ты на время зажимай, а не в каждой итерации зажимай/отжимай.
Ну теперь он это делает по заданному таймеру
 
Ответить с цитированием

  #4409  
Старый 07.04.2020, 02:38
ucciModd
Новичок
Регистрация: 21.03.2020
Сообщений: 17
С нами: 3235828

Репутация: 3
По умолчанию

Цитата:
Сообщение от Deprecation  

Смотри, когда ты присваиваешь 128 - ты зажимаешь клавишу, когда 0 - отжимаешь.
Можешь просто присвоить 128 и он у тебя вечно бежать будет.
Ну я понимаю, что 128 - воспроизведение клавиши, а 0 - отжатие. Если просто поставить 128, то он все равно на микросекунду остановится. А если делать 0/128, то он просто это делает по заданному времени
 
Ответить с цитированием

  #4410  
Старый 07.04.2020, 15:21
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от ucciModd  

Ну я понимаю, что 128 - воспроизведение клавиши, а 0 - отжатие. Если просто поставить 128, то он все равно на микросекунду остановится. А если делать 0/128, то он просто это делает по заданному времени
Попробуй писать еще и по этому адресу: 0x00B7358C
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.