Вопрос по функциям CLEO

Lobber

Известный
Автор темы
178
57
Всем доброго времени суток. Недавно узнал про такую замечательную вещь как WinAPI, которую можно использовать для эмуляции нажатия клавиш без SF. Возник вопрос, есть ли возможность вводить в чат сообщения без SF? Через любые костыли, это не принципиально.
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Всем доброго времени суток. Недавно узнал про такую замечательную вещь как WinAPI, которую можно использовать для эмуляции нажатия клавиш без SF. Возник вопрос, есть ли возможность вводить в чат сообщения без SF? Через любые костыли, это не принципиально.
 

Lobber

Известный
Автор темы
178
57
К сожалению краш с тонной ошибок. Оффсеты же актуальны исключительно для R1, верно?
 

D3.Pheonix

🎹
Модератор
2,817
1,599
R3, в нем samp.dll совершенно другой
CLEO:
const // R3 offsets
SAMP_CHAT_INFO_OFFSET   = 0x26E8C8
SAMP_FUNC_ADDTOCHATWND  = 0x67460
SAMP_FUNC_SAY           = 0x5820
end

{Написать текст в чат}
:TextInChat
// Example: 0AB1: call @TextInChat 1 text 0@
0AA2: 31@ = load_library "kernel32.dll" // IF and SET
0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET
0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 3@
0A8E: 2@ = 3@ + SAMP_CHAT_INFO_OFFSET
0A8D: 1@ = read_memory 2@ size 4 virtual_protect 1
0A8E: 2@ = 3@ + SAMP_FUNC_ADDTOCHATWND
0AA6: call_method 2@ struct 1@ num_params 5 pop 0 params 0 0xFFFFFFFF 0 0@ 8
0AB2: ret 0
/////////////////////////////


{Отправить текст в чат}
0AB1: call @GetSampBase 0 1@
1@ += SAMP_FUNC_SAY
0AA5: call 1@ num_params 1 pop 0 "qq epta"

:GetSampBase
0AA2: 31@ = load_library "kernel32.dll" // IF and SET
0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET
0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 0@
0ab2: ret 1 0@
 
  • Нравится
Реакции: Lobber

Lobber

Известный
Автор темы
178
57
CLEO:
const // R3 offsets
SAMP_CHAT_INFO_OFFSET   = 0x26E8C8
SAMP_FUNC_ADDTOCHATWND  = 0x67460
SAMP_FUNC_SAY           = 0x5820
end

{Написать текст в чат}
:TextInChat
// Example: 0AB1: call @TextInChat 1 text 0@
0AA2: 31@ = load_library "kernel32.dll" // IF and SET
0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET
0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 3@
0A8E: 2@ = 3@ + SAMP_CHAT_INFO_OFFSET
0A8D: 1@ = read_memory 2@ size 4 virtual_protect 1
0A8E: 2@ = 3@ + SAMP_FUNC_ADDTOCHATWND
0AA6: call_method 2@ struct 1@ num_params 5 pop 0 params 0 0xFFFFFFFF 0 0@ 8
0AB2: ret 0
/////////////////////////////


{Отправить текст в чат}
0AB1: call @GetSampBase 0 1@
1@ += SAMP_FUNC_SAY
0AA5: call 1@ num_params 1 pop 0 "qq epta"

:GetSampBase
0AA2: 31@ = load_library "kernel32.dll" // IF and SET
0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET
0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 0@
0ab2: ret 1 0@
Да, отлично, все работает! Жаль только что сервер команды не распознает, которые были введены подобным методом, а пишет их в чат. Думаю это как-нибудь поправлю, пока буду эксперементировать
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Жаль только что сервер команды не распознает, которые были введены подобным методом, а пишет их в чат.
так можно серверные команды вызывать:
CLEO:
const
SAMP_FUNC_SENDCMD     = 0x69190
end

alloc 0@ 35
format 0@ "/cmd"
call @cmd_say 1 0@

:cmd_say
if
0AA2: 1@ = "samp.dll"
then
1@ += SAMP_FUNC_SENDCMD
0AA5: call 1@ num_param 1 pop 0 0@
end
0AB2: 0
 
  • Нравится
Реакции: Lobber

Lobber

Известный
Автор темы
178
57
так можно серверные команды вызывать:
CLEO:
const
SAMP_FUNC_SENDCMD     = 0x69190
end

alloc 0@ 35
format 0@ "/cmd"
call @cmd_say 1 0@

:cmd_say
if
0AA2: 1@ = "samp.dll"
then
1@ += SAMP_FUNC_SENDCMD
0AA5: call 1@ num_param 1 pop 0 0@
end
0AB2: 0
Существует ли что-то, что ты не знаешь? xD Да уж, как я раньше не додумался тут спросить, сколько времени потратил просто так, хех
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Существует ли что-то, что ты не знаешь? xD Да уж, как я раньше не додумался тут спросить, сколько времени потратил просто так, хех
Я далеко не всё знаю. Но в твоём случае нужно было просто глянуть офсеты R3
Быстренько глянул тут: https://www.blast.hk/threads/52073/
 

Lobber

Известный
Автор темы
178
57
Я далеко не всё знаю. Но в твоём случае нужно было просто глянуть офсеты R3
Быстренько глянул тут: https://www.blast.hk/threads/52073/
В жизни бы не додумался залезть в этот раздел, тем более не подумал, что это актуально для R3. Да, стоит лучше изучать форум, тут много чего есть
 

D3.Pheonix

🎹
Модератор
2,817
1,599
В жизни бы не додумался залезть в этот раздел, тем более не подумал, что это актуально для R3. Да, стоит лучше изучать форум, тут много чего есть
Я даже не на бх искал. Просто загуглил "0.3.7 r3 offsets" 😆