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

  #1701  
Старый 27.06.2017, 23:58
Sonik Mells
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6685693

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

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

SF->getGame()-isActiveMenu()
Но это открытое меню! Мне требуется, не допускать его открытия.
 
Ответить с цитированием

  #1702  
Старый 28.06.2017, 00:28
MISTER_GONWIK
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,262
С нами: 6935116

Репутация: 183


По умолчанию

Цитата:
Сообщение от Sonik Mells  

Показываю своё меню на рендере (SF), мышь показываю путем SF->getSAMP()->getMisc()->ToggleCursor(true);, вопрос! Как отловить нажатие ESC, дабы скрыть курсор с меню моим, блокируя показ игрового меню?
wndproc хукани и там обрывай
 
Ответить с цитированием

  #1703  
Старый 28.06.2017, 13:16
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

Как получить адрес символьного массива? (через & не хочет, ошибка)
 
Ответить с цитированием

  #1704  
Старый 28.06.2017, 14:06
Roger571
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами: 5689694

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

help me

Пытаюсь подменить дополнительные цвета SAMPа на свои, но все хорошо до какого-то момента.

Начинаю подменять с адреса 0xB4E67C 128 цветов, примерно так:

C++:





[CODE]
int
iPoint
=
0xB4E67C
;
for
(
int
i
=
0
;
i



Если попробовать инициализировать это во время загрузки - краш по адресу 0x004C74B8

Если попробовать во время игры, варнинги в чат и затем краш. Тоже самое, если заставить игру загружать кастомный carcols.dat

С установленным антикрашем, варнинги в чат летят, но при этом цвета работают правильно

Так же путем экспериментов выяснил, что если в blue подставить число большее 235, все заработает. При этом цвета подменяются правильно и без краша, если не подменять больше 53.

UPD

Остальные цвета нормально прописываются после коннекта/полного подключения samp.dll

UPD2

Работает без крашей только для уже созданных авто, при создании новых авто появяются варнинги по адресу 4C74E1
 
Ответить с цитированием

  #1705  
Старый 29.06.2017, 02:45
Sonik Mells
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6685693

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

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

wndproc хукани и там обрывай
Все работает, но мне глобальные нажатия на... не нужны. А локальные(для нашего процесса) не получается осуществить.

C++:





Код:
HHOOK keyboardHook
;
LRESULT CALLBACK
KeyboardProc
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
wParam
==
WM_KEYDOWN
&&
nCode
==
HC_ACTION
)
{
PKBDLLHOOKSTRUCT key
=
(
PKBDLLHOOKSTRUCT
)
lParam
;
printf
(
"key: %i\n"
,
key
->
vkCode
)
;
}
return
CallNextHookEx
(
keyboardHook
,
nCode
,
wParam
,
lParam
)
;
}
int
main
(
)
{
keyboardHook
=
SetWindowsHookEx
(
WH_KEYBOARD_LL
,
KeyboardProc
,
NULL
,
NULL
)
;
return
0
;
}


Можно с проверкой if(GAME->IsInForeground()), но что то меня такой вариант не привлекает.
 
Ответить с цитированием

  #1706  
Старый 29.06.2017, 07:44
MISTER_GONWIK
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,262
С нами: 6935116

Репутация: 183


По умолчанию

Цитата:
Сообщение от Sonik Mells  

Все работает, но мне глобальные нажатия на... не нужны. А локальные(для нашего процесса) не получается осуществить.

C++:





Код:
HHOOK keyboardHook
;
LRESULT CALLBACK
KeyboardProc
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
wParam
==
WM_KEYDOWN
&&
nCode
==
HC_ACTION
)
{
PKBDLLHOOKSTRUCT key
=
(
PKBDLLHOOKSTRUCT
)
lParam
;
printf
(
"key: %i\n"
,
key
->
vkCode
)
;
}
return
CallNextHookEx
(
keyboardHook
,
nCode
,
wParam
,
lParam
)
;
}
int
main
(
)
{
keyboardHook
=
SetWindowsHookEx
(
WH_KEYBOARD_LL
,
KeyboardProc
,
NULL
,
NULL
)
;
return
0
;
}


Можно с проверкой if(GAME->IsInForeground()), но что то меня такой вариант не привлекает.
У сфа есть свой хук, его и используй
 
Ответить с цитированием

  #1707  
Старый 29.06.2017, 10:47
Sonik Mells
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6685693

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

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

У сфа есть свой хук, его и используй
Видел SF->getGame()->createHook(), но не разобрался с ней! Не сложно помочь?
 
Ответить с цитированием

  #1708  
Старый 29.06.2017, 11:15
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

Цитата:
Сообщение от Sonik Mells  

Видел SF->getGame()->createHook(), но не разобрался с ней! Не сложно помочь?
SF->registerWndProc(...) вроде
 
Ответить с цитированием

  #1709  
Старый 29.06.2017, 11:19
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

SF->registerWndProc(...) вроде
SF->getGame()
 
Ответить с цитированием

  #1710  
Старый 29.06.2017, 11:30
Sonik Mells
Новичок
Регистрация: 29.08.2013
Сообщений: 12
С нами: 6685693

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

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

SF->getGame()
Я уже нашел и сделал все) почти все)

C++:





Код:
if
(
uMsg
==
WM_KEYDOWN
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
80
,
0xEA
,
100
)
,
"out: %i"
,
wParam
)
;
}
SF
->
getGame
(
)
->
registerWndProcCallback
(
SFGame
::
WndProcCallbackPriority
::
HIGH_CB_PRIORITY
,
WndProc
)
;


Теперь вопрос, а как LMENU(LAlt) отловить? не выводит его.

И какой HIGH_CB_...правильней использовать?

Пока, только так придумал

C++:





Код:
bool
CALLBACK
SendPacket
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
ID_PLAYER_SYNC
)
{
stOnFootData data
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
IgnoreBits
(
8
)
;
params
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
data
)
)
;
if
(
data
.
sKeys
==
1024
)
{
return
true
;
}
}
return
true
;
}
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.