 |
|

07.08.2021, 18:18
|
|
Новичок
Регистрация: 07.08.2021
Сообщений: 2
С нами:
2509944
Репутация:
0
|
|
Сообщение от damag
искал искал и не нашел, вообщем. Нужны две функции, это фриз камеры и фриз педа.(sf)
C++:
Код:
// bControllable: 0 - заморозить, 1 - разморозить
// Действия можно выполнять и до инициализации сампа, главное чтоб сам модуль был загружен в игру
void
sampTogglePlayerControllable
(
class
CPed
*
targetPed
,
::
BOOL bControllable
)
{
static
auto
sampLibrary
{
std
::
uintptr_t
(
::
GetModuleHandle
(
"samp.dll"
)
)
}
;
reinterpret_cast
(
sampLibrary
+
0xA7050
)
(
targetPed
,
bControllable
)
;
}
// false - заморозить, true - разморозить
void
setCameraControllable
(
bool
status
)
{
*
reinterpret_cast
(
0x52B730
)
=
status
?
0x81
:
0xC3
;
}
Сообщение от loganhackerdff
всем ку я не научился пользоваться гидрой, скажите пж адрес функции скриншота для samp 0.3.7 R3
для 0.3.7 R1 я знаю - samp.dll + 0x70FC0
[S](и если не сложно напишите как блять в этой гидре прыгнуть на функцию)[/S]
Мне, конечно, не тяжело загрузить библиотеку, но для приличия мог бы и скинуть.
C++:
Код:
// R3
void
takeScreenshot
(
)
{
static
auto
sampLibrary
{
std
::
uintptr_t
(
::
GetModuleHandle
(
"samp.dll"
)
)
}
;
reinterpret_cast
(
sampLibrary
+
0x74EB0
)
(
)
;
}
|
|
|

12.08.2021, 00:22
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
всем ку, я хочу емулировать нажатие клавиши alt, для этого юзаю https://www.blast.hk/threads/52553/ но ничего не работает,
(значение там меняется от нажатия alt)
походу это надо использовать не в хуке 0x748DA3
|
|
|

12.08.2021, 01:22
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от loganhackerdff
всем ку, я хочу емулировать нажатие клавиши alt, для этого юзаю https://www.blast.hk/threads/52553/ но ничего не работает,
(значение там меняется от нажатия alt)
походу это надо использовать не в хуке 0x748DA3
Хукай CPad::UpdatePads
|
|
|

13.08.2021, 14:37
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
hi, мне нужна помощь с rakhook, хукаю onFootSync:
C++:
Код:
bool
onPacketOutcoming
(
RakNet
::
BitStream
*
&
bs
)
override
{
stOnFootData
*
data
;
if
(
*
bs
->
GetData
(
)
==
207
)
{
data
=
(
stOnFootData
*
)
bs
->
GetData
(
)
;
vars
::
pChat
->
AddMessage
(
-
1
,
std
::
to_string
(
data
->
byteHealth
)
.
c_str
(
)
)
;
}
return
true
;
}
Структуры:
C++:
Код:
struct
stSAMPKeys
{
uint8_t
keys_primaryFire
:
1
;
uint8_t
keys_horn__crouch
:
1
;
uint8_t
keys_secondaryFire__shoot
:
1
;
uint8_t
keys_accel__zoomOut
:
1
;
uint8_t
keys_enterExitCar
:
1
;
uint8_t
keys_decel__jump
:
1
;
// on foot: jump or zoom in
uint8_t
keys_circleRight
:
1
;
uint8_t
keys_aim
:
1
;
// hydra auto aim or on foot aim
uint8_t
keys_circleLeft
:
1
;
uint8_t
keys_landingGear__lookback
:
1
;
uint8_t
keys_unknown__walkSlow
:
1
;
uint8_t
keys_specialCtrlUp
:
1
;
uint8_t
keys_specialCtrlDown
:
1
;
uint8_t
keys_specialCtrlLeft
:
1
;
uint8_t
keys_specialCtrlRight
:
1
;
uint8_t
keys__unused
:
1
;
}
;
struct
stOnFootData
{
uint8_t
packet
;
uint16_t
sLeftRightKeys
;
uint16_t
sUpDownKeys
;
union
{
uint16_t
sKeys
;
struct
stSAMPKeys
stSampKeys
;
}
;
float
fPosition
[
3
]
;
float
fQuaternion
[
4
]
;
uint8_t
byteHealth
;
uint8_t
byteArmor
;
uint8_t
byteCurrentWeapon
;
uint8_t
byteSpecialAction
;
float
fMoveSpeed
[
3
]
;
float
fSurfingOffsets
[
3
]
;
uint16_t
sSurfingVehicleID
;
short
sCurrentAnimationID
;
short
sAnimFlags
;
}
;
Но всегда в чат выводится 0
|
|
|

13.08.2021, 15:32
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от SC6UT
тебя не смущает что до данных лежит еще и айди пакета?
чекни структуру, я добавил byte packerID в stOnFootData
|
|
|

13.08.2021, 16:21
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от loganhackerdff
hi, мне нужна помощь с rakhook, хукаю onFootSync:
C++:
Код:
bool
onPacketOutcoming
(
RakNet
::
BitStream
*
&
bs
)
override
{
stOnFootData
*
data
;
if
(
*
bs
->
GetData
(
)
==
207
)
{
data
=
(
stOnFootData
*
)
bs
->
GetData
(
)
;
vars
::
pChat
->
AddMessage
(
-
1
,
std
::
to_string
(
data
->
byteHealth
)
.
c_str
(
)
)
;
}
return
true
;
}
Структуры:
C++:
Код:
struct
stSAMPKeys
{
uint8_t
keys_primaryFire
:
1
;
uint8_t
keys_horn__crouch
:
1
;
uint8_t
keys_secondaryFire__shoot
:
1
;
uint8_t
keys_accel__zoomOut
:
1
;
uint8_t
keys_enterExitCar
:
1
;
uint8_t
keys_decel__jump
:
1
;
// on foot: jump or zoom in
uint8_t
keys_circleRight
:
1
;
uint8_t
keys_aim
:
1
;
// hydra auto aim or on foot aim
uint8_t
keys_circleLeft
:
1
;
uint8_t
keys_landingGear__lookback
:
1
;
uint8_t
keys_unknown__walkSlow
:
1
;
uint8_t
keys_specialCtrlUp
:
1
;
uint8_t
keys_specialCtrlDown
:
1
;
uint8_t
keys_specialCtrlLeft
:
1
;
uint8_t
keys_specialCtrlRight
:
1
;
uint8_t
keys__unused
:
1
;
}
;
struct
stOnFootData
{
uint8_t
packet
;
uint16_t
sLeftRightKeys
;
uint16_t
sUpDownKeys
;
union
{
uint16_t
sKeys
;
struct
stSAMPKeys
stSampKeys
;
}
;
float
fPosition
[
3
]
;
float
fQuaternion
[
4
]
;
uint8_t
byteHealth
;
uint8_t
byteArmor
;
uint8_t
byteCurrentWeapon
;
uint8_t
byteSpecialAction
;
float
fMoveSpeed
[
3
]
;
float
fSurfingOffsets
[
3
]
;
uint16_t
sSurfingVehicleID
;
short
sCurrentAnimationID
;
short
sAnimFlags
;
}
;
Но всегда в чат выводится 0
#pragma pack(push, 1)
|
|
|

15.08.2021, 15:12
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
похоже что это раздел только для меня, чувствую себя тупым, ну да ладно,
кароче я юзаю sampapi ирисую чамсы вот так:
C++:
Код:
if
(
m_bChams
&&
g
::
pDXDevice
)
{
DWORD dwCONSTANT
{
0
}
,
dwARG2
{
0
}
,
dwCULL
{
0
}
;
g
::
pDXDevice
->
GetRenderState
(
D3DRS_CULLMODE
,
&
dwCULL
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
&
dwCONSTANT
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
&
dwARG2
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
D3DCULL_CW
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
0xFFFFFFFF
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
D3DTA_CONSTANT
)
;
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
dwCULL
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
dwCONSTANT
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
dwARG2
)
;
}
}
Перед этим проверка всего что можно для педа
C++:
Код:
(
player
&&
player
->
m_pPed
&&
player
->
DoesExist
(
)
&&
player
->
m_pPed
->
DoesExist
(
)
&&
player
->
m_pPed
->
m_pGamePed
&&
player
->
m_pPed
->
m_pGameEntity
)
выглядит как будто наговнокожено но всё равно вылетают exceptions на строке после
C++:
Код:
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
пример кода взят отсюда: https://github.com/Stickey21/Stealt.../Stealth Remastered/Features/Visuals.cpp#L269
|
|
|

15.08.2021, 15:45
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от loganhackerdff
похоже что это раздел только для меня, чувствую себя тупым, ну да ладно,
кароче я юзаю sampapi ирисую чамсы вот так:
C++:
Код:
if
(
m_bChams
&&
g
::
pDXDevice
)
{
DWORD dwCONSTANT
{
0
}
,
dwARG2
{
0
}
,
dwCULL
{
0
}
;
g
::
pDXDevice
->
GetRenderState
(
D3DRS_CULLMODE
,
&
dwCULL
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
&
dwCONSTANT
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
&
dwARG2
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
D3DCULL_CW
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
0xFFFFFFFF
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
D3DTA_CONSTANT
)
;
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
dwCULL
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
dwCONSTANT
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
dwARG2
)
;
}
}
Перед этим проверка всего что можно для педа
C++:
Код:
(
player
&&
player
->
m_pPed
&&
player
->
DoesExist
(
)
&&
player
->
m_pPed
->
DoesExist
(
)
&&
player
->
m_pPed
->
m_pGamePed
&&
player
->
m_pPed
->
m_pGameEntity
)
выглядит как будто наговнокожено но всё равно вылетают exceptions на строке после
C++:
Код:
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
пример кода взят отсюда: https://github.com/Stickey21/Stealth-Remastered/blob/origin/Stealth Remastered/Features/Visuals.cpp#L269
CEntityRender:
Код:
using
CEntity__Render
=
void
(
__thiscall
*
)
(
::
CEntity
*
)
;
reinterpret_cast
(
0x59F180
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
chams:
Код:
DWORD dwCONSTANT
,
dwARG0
,
dwARG1
,
dwARG2
;
struct
CPed
*
pPed
=
pSAMP
->
g_Players
->
m_pObject
[
i
]
->
m_pPlayer
->
m_pPed
->
m_pGamePed
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
&
dwCONSTANT
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
&
dwARG0
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
&
dwARG1
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
&
dwARG2
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
floatToHex
(
colors
->
PlayerChamsColor
)
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
D3DTA_CONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
D3DTA_CONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
D3DTA_CONSTANT
)
;
pPed
->
Render
(
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
dwCONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
dwARG0
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
dwARG1
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
dwARG2
)
;
|
|
|

15.08.2021, 15:52
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов( 0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:
C:
Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}
C++:
Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast
(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast
(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast
(
shader
)
,
&
pPixelShader
)
;
}
C++:
Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;
|
|
|

15.08.2021, 15:55
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от kin4stat
Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:
C:
Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}
C++:
Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast
(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast
(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast
(
shader
)
,
&
pPixelShader
)
;
}
C++:
Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;
а как понять что рисуется полигон из модели педа
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|