
07.02.2023, 01:01
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от writeline
Подскажи если сможешь, почему не хочет работать? 🧐
C++:
Код:
void
windtext
(
)
{
HWND hwnd
=
FindWindow
(
NULL
,
"GTA:SA:MP"
)
;
if
(
hwnd
==
NULL
)
{
MessageBox
(
NULL
,
"Window not found!"
,
"Error"
,
MB_OK
)
;
}
std
::
string newText
=
"GTA:BLAST.HK"
;
SetWindowText
(
hwnd
,
newText
.
c_str
(
)
)
;
}
У меня работает. Возможно ты используешь это в DLL и код вызывается до того, как самп инициализировался, а до того, как самп инициализировался, работать не будет, ибо там другое название окна
|
|
|

07.02.2023, 09:22
|
|
Новичок
Регистрация: 16.01.2022
Сообщений: 28
С нами:
2276608
Репутация:
8
|
|
Сообщение от AdCKuY_DpO4uLa
У меня работает
Можешь свой вариант кода скинуть пожалуйста?
Сообщение от Young123
Помогите, компилю, но текст не выводится (делаю на самп мобайл)
Адреса не одинаковые с ПК сампом что ли? На ПК адреса 0x69F1E0 и 0xC8D4C0
Я конечно в мобийл 0, но попробуй вот так
С++:
Код:
#include "pch.h"
#include
#include "main.h"
#include "armhook.h"
void
AddMessageJumpQ
(
const
char
*
text
,
unsigned
int
time
,
unsigned
short
flag
,
bool
bPreviousBrief
)
{
(
(
void
(
__cdecl
*
)
(
const
char
*
,
unsigned
int
,
unsigned
short
,
bool
)
)
0x4D1EA4
)
(
text
,
time
,
flag
,
bPreviousBrief
)
;
}
void
InitializeAndLoad
(
)
{
while
(
*
reinterpret_cast
(
0x9E75B8
)
!=
9
)
{
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
100u
)
)
;
}
AddMessageJumpQ
(
"~Hello from blast.hk"
,
5000
,
0
,
false
)
;
}
}
Сообщение от armor
Как можно получить ID процесса по его названию? Нашел такую функцию в интернете:
C++:
Код:
#include
int
main
(
)
{
int
process_id
=
psutil
::
GetProcessId
(
"process_name"
)
;
return
0
;
}
|
|
|

08.02.2023, 00:40
|
|
Новичок
Регистрация: 04.02.2023
Сообщений: 4
С нами:
1723661
Репутация:
1
|
|
Как пользоваться сампфунксом? На вики удалили раздел со списком функций.
|
|
|

08.02.2023, 18:39
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Как отключить функцию /NOP/patch в C++, найденную в IDA в samp.dll, чтобы она не работала в игре?
SAMP 03DL, пишет код в mod_sa.
sub_1006A2B0
|
|
|

08.02.2023, 18:46
|
|
Новичок
Регистрация: 16.01.2022
Сообщений: 28
С нами:
2276608
Репутация:
8
|
|
Сообщение от horacy
Как отключить функцию /NOP/patch в C++, найденную в IDA в samp.dll, чтобы она не работала в игре?
SAMP 03DL, пишет код в mod_sa.
sub_1006A2B0
Замени sub_1006A2B0 на пустую функцию
|
|
|

08.02.2023, 18:50
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Сообщение от writeline
Замени sub_1006A2B0 на пустую функцию
И можно ли это сделать без редактирования samp.dll? Только переопределение функций С++ в mod_sa?
|
|
|

08.02.2023, 18:53
|
|
Новичок
Регистрация: 16.01.2022
Сообщений: 28
С нами:
2276608
Репутация:
8
|
|
Сообщение от horacy
можно ли это сделать без редактирования samp.dll
Нет
Пиши плагин)
|
|
|

08.02.2023, 19:00
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Сообщение от writeline
Нет
Пиши плагин)
Я имел в виду, как переопределить эту функцию на C++, я пишу в проекте mod_sa, поэтому я хотел бы написать это там, если только по какой-то причине это не может. Можете ли вы привести пример кода, который заменяет sub пустой функцией?
|
|
|

08.02.2023, 21:08
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
Как я могу сделать то же самое, но на C++? (Я просто хочу научиться отправлять данные в дискорд)) (.asi — .sf)
Lua:
Код:
local
encoding
=
require
'encoding'
-- подключаем для корректной отправки русских букв
encoding
.
default
=
'CP1251'
u8
=
encoding
.
UTF8
local
sampev
=
require
'lib.samp.events'
-- подключаем для хука отправки ответа на диалог
local
effil
=
require
'effil'
-- для ассинхронных запросов
local
url
=
'URL'
local
data
=
{
[
'content'
]
=
''
,
-- текст (меняется через команду, так что можно оставить пустым)
[
'username'
]
=
'Sended from .lua script!'
,
-- ник отправителя
[
'avatar_url'
]
=
'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif'
,
-- ссылка на аватарку (можно убрать, будет дефолтная)
[
'tts'
]
=
false
,
-- tts - text to speech - читалка сообщений (true/false)
-- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}
function
main
(
)
while
not
isSampAvailable
(
)
do
wait
(
0
)
end
sampRegisterChatCommand
(
'ds.msg'
,
function
(
arg
)
data
[
'username'
]
=
sampGetPlayerNickname
(
select
(
2
,
sampGetPlayerIdByCharHandle
(
PLAYER_PED
)
)
)
-- ник отправителя = ник в игре
data
[
'content'
]
=
arg
-- делаем что бы текст сообщения был равен тексту который мы ввели после команды
-- отправляем запрос
asyncHttpRequest
(
'POST'
,
url
,
{
headers
=
{
[
'content-type'
]
=
'application/json'
}
,
data
=
u8
(
encodeJson
(
data
)
)
}
,
function
(
response
)
print
(
'[WebHook] [OK] отправлено!'
)
end
,
function
(
err
)
print
(
'[WebHook] [ERROR] error: '
..
err
)
end
)
end
)
wait
(
-
1
)
end
-- функция для отправки ассинхронных сообщений
function
asyncHttpRequest
(
method
,
url
,
args
,
resolve
,
reject
)
local
request_thread
=
effil
.
thread
(
function
(
method
,
url
,
args
)
local
requests
=
require
'requests'
local
result
,
response
=
pcall
(
requests
.
request
,
method
,
url
,
args
)
if
result
then
response
.
json
,
response
.
xml
=
nil
,
nil
return
true
,
response
else
return
false
,
response
end
end
)
(
method
,
url
,
args
)
-- Если запрос без функций обработки ответа и ошибок.
if
not
resolve
then
resolve
=
function
(
)
end
end
if
not
reject
then
reject
=
function
(
)
end
end
-- Проверка выполнения потока
lua_thread
.
create
(
function
(
)
local
runner
=
request_thread
while
true
do
local
status
,
err
=
runner
:
status
(
)
if
not
err
then
if
status
==
'completed'
then
local
result
,
response
=
runner
:
get
(
)
if
result
then
resolve
(
response
)
else
reject
(
response
)
end
return
elseif
status
==
'canceled'
then
return
reject
(
status
)
end
else
return
reject
(
err
)
end
wait
(
0
)
end
end
)
end
|
|
|

21.02.2023, 23:57
|
|
Познающий
Регистрация: 14.02.2023
Сообщений: 41
С нами:
1709244
Репутация:
13
|
|
Сообщение от !Sam#0235
Как я могу сделать то же самое, но на C++? (Я просто хочу научиться отправлять данные в дискорд)) (.asi — .sf)
Lua:
Код:
local
encoding
=
require
'encoding'
-- подключаем для корректной отправки русских букв
encoding
.
default
=
'CP1251'
u8
=
encoding
.
UTF8
local
sampev
=
require
'lib.samp.events'
-- подключаем для хука отправки ответа на диалог
local
effil
=
require
'effil'
-- для ассинхронных запросов
local
url
=
'URL'
local
data
=
{
[
'content'
]
=
''
,
-- текст (меняется через команду, так что можно оставить пустым)
[
'username'
]
=
'Sended from .lua script!'
,
-- ник отправителя
[
'avatar_url'
]
=
'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif'
,
-- ссылка на аватарку (можно убрать, будет дефолтная)
[
'tts'
]
=
false
,
-- tts - text to speech - читалка сообщений (true/false)
-- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}
function
main
(
)
while
not
isSampAvailable
(
)
do
wait
(
0
)
end
sampRegisterChatCommand
(
'ds.msg'
,
function
(
arg
)
data
[
'username'
]
=
sampGetPlayerNickname
(
select
(
2
,
sampGetPlayerIdByCharHandle
(
PLAYER_PED
)
)
)
-- ник отправителя = ник в игре
data
[
'content'
]
=
arg
-- делаем что бы текст сообщения был равен тексту который мы ввели после команды
-- отправляем запрос
asyncHttpRequest
(
'POST'
,
url
,
{
headers
=
{
[
'content-type'
]
=
'application/json'
}
,
data
=
u8
(
encodeJson
(
data
)
)
}
,
function
(
response
)
print
(
'[WebHook] [OK] отправлено!'
)
end
,
function
(
err
)
print
(
'[WebHook] [ERROR] error: '
..
err
)
end
)
end
)
wait
(
-
1
)
end
-- функция для отправки ассинхронных сообщений
function
asyncHttpRequest
(
method
,
url
,
args
,
resolve
,
reject
)
local
request_thread
=
effil
.
thread
(
function
(
method
,
url
,
args
)
local
requests
=
require
'requests'
local
result
,
response
=
pcall
(
requests
.
request
,
method
,
url
,
args
)
if
result
then
response
.
json
,
response
.
xml
=
nil
,
nil
return
true
,
response
else
return
false
,
response
end
end
)
(
method
,
url
,
args
)
-- Если запрос без функций обработки ответа и ошибок.
if
not
resolve
then
resolve
=
function
(
)
end
end
if
not
reject
then
reject
=
function
(
)
end
end
-- Проверка выполнения потока
lua_thread
.
create
(
function
(
)
local
runner
=
request_thread
while
true
do
local
status
,
err
=
runner
:
status
(
)
if
not
err
then
if
status
==
'completed'
then
local
result
,
response
=
runner
:
get
(
)
if
result
then
resolve
(
response
)
else
reject
(
response
)
end
return
elseif
status
==
'canceled'
then
return
reject
(
status
)
end
else
return
reject
(
err
)
end
wait
(
0
)
end
end
)
end
libcurl+ хуксамп-клиентовских функций
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|