 |
|

04.02.2020, 18:54
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Vintik
Спасибо, сделаю, все понял)
А по поводу спавна все же как?)
так же. Это универсальный метод поиска нужного кода
|
|
|

04.02.2020, 18:57
|
|
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами:
4598023
Репутация:
183
|
|
Сообщение от SR_team
так же. Это универсальный метод поиска нужного кода
А потом просто его вызывать? А аргументы как искать? И еще в первом посту я скинул ссылку на то, где я пытался сделать хук, но по непонятным мне причинам тщетно.
|
|
|

04.02.2020, 19:59
|
|
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами:
6395080
Репутация:
128
|
|
Сообщение от Vintik
А аргументы как искать?
Чекай регистры и запушивание в стек непосредственно перед вызовом функции, и обращения к [ebp+...] в самой функции
|
|
|

05.02.2020, 20:46
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
как можно получить разрешение экрана (игры) без SFAPI
|
|
|

05.02.2020, 20:53
|
|
Постоянный
Регистрация: 25.12.2018
Сообщений: 568
С нами:
3886298
Репутация:
113
|
|
Сообщение от RECEIVER
как можно получить разрешение экрана (игры) без SFAPI
C++:
Код:
/* Глобально в системе. */
POINT globalScreenResolution
=
{
GetSystemMetrics
(
SM_CXSCREEN
)
,
GetSystemMetrics
(
SM_CYSCREEN
)
)
}
/* Установленное игрой. */
POINT gameScreenResolution
=
{
*
reinterpret_cast
(
0xC9C040
)
,
*
reinterpret_cast
(
0xC9C044
)
}
|
|
|

09.02.2020, 13:37
|
|
Новичок
Регистрация: 13.09.2005
Сообщений: 2
С нами:
10872326
Репутация:
0
|
|
Приветствую.
Как, используя sampfuncs, при получении RPC_ScrGangZoneStopFlash прочесть новый цвет гангзоны (если она была захвачена)?
В Lua работает просто используя
Код:
Код:
local pool = ffi.cast('struct stGangzonePool*', sampGetGangzonePoolPtr())
local color = pool.pGangzone[id].dwColor
, а вот sampfuncs'е через
Код:
Код:
stGangzonePool* pool = SF->getSAMP()->getInfo()->pPools->pGangzone;
pool->pGangzone[id]->dwColor;
отображает старый цвет гангзоны.
|
|
|

09.02.2020, 21:21
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами:
4272230
Репутация:
183
|
|
Сообщение от testUser
Приветствую.
Как, используя sampfuncs, при получении RPC_ScrGangZoneStopFlash прочесть новый цвет гангзоны (если она была захвачена)?
В Lua работает просто используя
Код:
Код:
local pool = ffi.cast('struct stGangzonePool*', sampGetGangzonePoolPtr())
local color = pool.pGangzone[id].dwColor
, а вот sampfuncs'е через
Код:
Код:
stGangzonePool* pool = SF->getSAMP()->getInfo()->pPools->pGangzone;
pool->pGangzone[id]->dwColor;
отображает старый цвет гангзоны.
Через хук.
|
|
|

09.02.2020, 23:24
|
|
Новичок
Регистрация: 13.09.2005
Сообщений: 2
С нами:
10872326
Репутация:
0
|
|
Сообщение от Musaigen
Через хук.
Каким образом?
|
|
|

10.02.2020, 20:04
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
как отправлять http запросы? желательно просто в консольном приложении с++
|
|
|

10.02.2020, 22:58
|
|
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами:
6039222
Репутация:
163
|
|
Сообщение от loganhackerdff
как отправлять http запросы? желательно просто в консольном приложении с++
Держи простенький класс, думаю на первое время тебе его хватит.
Исходник - SendGet
Класс для отправки get запроса и получения ответа. CleanLegend/SendGet(https://github.com/CleanLegend/SendGet) Пример использования: MyGet MyGetGet; std::string myotvet; MyGetGet.Init("mysite.com"); MyGetGet.SendGet("test.php?user=test", myotvet); MyGetGet.DeInit();
blast.hk
Сообщение от testUser
Каким образом?
RPC List
A list with SA-MP's packets documented. Contribute to Brunoo16/samp-packet-list development by creating an account on GitHub.
github.com
C++:
Код:
bool
CALLBACK
incomingRPC
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrGangZoneCreate
)
{
WORD wGangZoneID
;
float
minmax
[
4
]
;
DWORD color
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
wGangZoneID
)
;
params
->
bitStream
->
Read
(
minmax
)
;
params
->
bitStream
->
Read
(
color
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GangZoneCreate: %d / %0.2f, %0.2f, %0.2f, %0.2f / %d"
,
wGangZoneID
,
minmax
[
0
]
,
minmax
[
1
]
,
minmax
[
2
]
,
minmax
[
3
]
,
color
)
;
}
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrGangZoneDestroy
)
{
WORD wGangZoneID
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
wGangZoneID
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GangZoneDestroy: %d"
,
wGangZoneID
)
;
}
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrGangZoneFlash
)
{
WORD wGangZoneID
;
DWORD color
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
wGangZoneID
)
;
params
->
bitStream
->
Read
(
color
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GangZoneFlash: %d / %d"
,
wGangZoneID
,
color
)
;
}
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrGangZoneStopFlash
)
{
WORD wGangZoneID
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
wGangZoneID
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GangZoneStopFlash: %d"
,
wGangZoneID
)
;
}
return
true
;
}
//Init, Register hook RPC's
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
incomingRPC
)
;
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|