
07.03.2016, 16:15
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Я думаю, по названиям функций понятно.
C++:
Код:
int
GetWeaponID
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetType
(
)
;
}
eWeaponState
GetWeaponState
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetState
(
)
;
}
int
GetAmmoInClip
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetAmmoInClip
(
)
;
}
int
GetAmmoTotal
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetAmmoTotal
(
)
;
}
int
GetWantedLevel
(
)
{
return
*
(
DWORD
*
)
0x58DB60
;
}
|
|
|

11.12.2018, 13:51
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Сообщение от AWRage
Я думаю, по названиям функций понятно.
C++:
Код:
int
GetWeaponID
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetType
(
)
;
}
eWeaponState
GetWeaponState
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetState
(
)
;
}
int
GetAmmoInClip
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetAmmoInClip
(
)
;
}
int
GetAmmoTotal
(
)
{
return
PEDSELF
->
GetWeapon
(
PEDSELF
->
GetCurrentWeaponSlot
(
)
)
->
GetAmmoTotal
(
)
;
}
int
GetWantedLevel
(
)
{
return
*
(
DWORD
*
)
0x58DB60
;
}
В дополнение. Получение уровня усталости
Код:
Код:
int GetSprintLevel()
{
float sprintLocalPlayer = *(float*)0xB7CDB4;
return (sprintLocalPlayer / 31.47000244 + 4.78) / 1.040;
}
|
|
|

07.03.2016, 22:44
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
int GetWantedLevel()
{
return *(DWORD*)0x58DB60;
}
Там байт храниться.
Так же это всё можно найти в пЛокалПлеер.
|
|
|

08.03.2016, 21:24
|
|
Постоянный
Регистрация: 06.07.2015
Сообщений: 310
С нами:
5712968
Репутация:
63
|
|
Получает разрешение экрана.
Вызов: POINT Screen = get_screen_resolution();
C++:
Код:
POINT
get_screen_resolution
(
)
{
POINT pos
;
pos
.
x
=
*
(
int
*
)
0xC9C040
;
pos
.
y
=
*
(
int
*
)
0xC9C044
;
return
pos
;
}
|
|
|

13.03.2016, 10:34
|
|
Постоянный
Регистрация: 06.07.2015
Сообщений: 310
С нами:
5712968
Репутация:
63
|
|
Выдача оружия через эмуляцию RPC
C++:
Код:
void
emulateRPC_giveweapon
(
uint32_t
weapon_id
,
uint32_t
ammo
)
{
BitStream bsClass
;
bsClass
.
Write
(
uint32_t
(
weapon_id
)
)
;
// WeaponID
bsClass
.
Write
(
uint32_t
(
ammo
)
)
;
// Ammo
SF
->
getRakNet
(
)
->
emulateRecvRPC
(
22
,
&
bsClass
)
;
}
Смена скина через эмуляцию RPC
C++:
Код:
void
emulateRPC_setskin
(
uint32_t
player_id
,
uint32_t
skin_id
)
{
BitStream bsClass
;
bsClass
.
Write
(
uint32_t
(
player_id
)
)
;
bsClass
.
Write
(
uint32_t
(
skin_id
)
)
;
SF
->
getRakNet
(
)
->
emulateRecvRPC
(
153
,
&
bsClass
)
;
}
Отправка фейковой позиции...
C++:
Код:
void
send_onfootdata
(
float
x
,
float
y
,
float
z
)
{
if
(
BS
->
getPlugin
(
)
->
actor_driving
(
-
1
)
)
return
;
BitStream bsOnfootSync
;
stOnFootData ofSync
;
memset
(
&
ofSync
,
0
,
sizeof
(
stOnFootData
)
)
;
ofSync
.
byteArmor
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteArmor
;
ofSync
.
byteCurrentWeapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteCurrentWeapon
;
ofSync
.
byteHealth
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteHealth
;
ofSync
.
byteSpecialAction
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteSpecialAction
;
ofSync
.
fMoveSpeed
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
0
]
;
ofSync
.
fMoveSpeed
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
1
]
;
ofSync
.
fMoveSpeed
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
2
]
;
ofSync
.
fPosition
[
0
]
=
x
;
ofSync
.
fPosition
[
1
]
=
y
;
ofSync
.
fPosition
[
2
]
=
z
;
ofSync
.
fQuaternion
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
0
]
;
ofSync
.
fQuaternion
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
1
]
;
ofSync
.
fQuaternion
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
2
]
;
ofSync
.
fQuaternion
[
3
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
3
]
;
ofSync
.
fSurfingOffsets
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
0
]
;
ofSync
.
fSurfingOffsets
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
1
]
;
ofSync
.
fSurfingOffsets
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
2
]
;
ofSync
.
sAnimFlags
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sAnimFlags
;
ofSync
.
sCurrentAnimationID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sCurrentAnimationID
;
ofSync
.
sKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sKeys
;
ofSync
.
sLeftRightKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sLeftRightKeys
;
ofSync
.
sSurfingVehicleID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sSurfingVehicleID
;
ofSync
.
stSampKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
stSampKeys
;
ofSync
.
sUpDownKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sUpDownKeys
;
bsOnfootSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsOnfootSync
.
Write
(
(
PCHAR
)
&
ofSync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsOnfootSync
)
;
}
Фейк смерть от игрока
C++:
Код:
void
send_death
(
uint16_t
player_id
,
uint8_t
weapon
)
{
BitStream bsDeath
;
bsDeath
.
Write
(
weapon
)
;
bsDeath
.
Write
(
player_id
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPC_Death
,
&
bsDeath
)
;
}
|
|
|

15.04.2023, 00:53
|
|
Флудер
Регистрация: 19.09.2020
Сообщений: 2,405
С нами:
2973374
Репутация:
183
|
|
Сообщение от By_Surse
Отправка фейковой позиции...
C++:
Код:
void
send_onfootdata
(
float
x
,
float
y
,
float
z
)
{
if
(
BS
->
getPlugin
(
)
->
actor_driving
(
-
1
)
)
return
;
BitStream bsOnfootSync
;
stOnFootData ofSync
;
memset
(
&
ofSync
,
0
,
sizeof
(
stOnFootData
)
)
;
ofSync
.
byteArmor
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteArmor
;
ofSync
.
byteCurrentWeapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteCurrentWeapon
;
ofSync
.
byteHealth
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteHealth
;
ofSync
.
byteSpecialAction
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteSpecialAction
;
ofSync
.
fMoveSpeed
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
0
]
;
ofSync
.
fMoveSpeed
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
1
]
;
ofSync
.
fMoveSpeed
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
2
]
;
ofSync
.
fPosition
[
0
]
=
x
;
ofSync
.
fPosition
[
1
]
=
y
;
ofSync
.
fPosition
[
2
]
=
z
;
ofSync
.
fQuaternion
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
0
]
;
ofSync
.
fQuaternion
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
1
]
;
ofSync
.
fQuaternion
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
2
]
;
ofSync
.
fQuaternion
[
3
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
3
]
;
ofSync
.
fSurfingOffsets
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
0
]
;
ofSync
.
fSurfingOffsets
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
1
]
;
ofSync
.
fSurfingOffsets
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fSurfingOffsets
[
2
]
;
ofSync
.
sAnimFlags
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sAnimFlags
;
ofSync
.
sCurrentAnimationID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sCurrentAnimationID
;
ofSync
.
sKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sKeys
;
ofSync
.
sLeftRightKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sLeftRightKeys
;
ofSync
.
sSurfingVehicleID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sSurfingVehicleID
;
ofSync
.
stSampKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
stSampKeys
;
ofSync
.
sUpDownKeys
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
sUpDownKeys
;
bsOnfootSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsOnfootSync
.
Write
(
(
PCHAR
)
&
ofSync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsOnfootSync
)
;
}
C++:
Код:
void
sendCoordination
(
float
x
,
float
y
,
float
z
)
{
BitStream bs
;
stOnFootData sync
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
;
sync
.
fPosition
[
0
]
=
x
;
sync
.
fPosition
[
1
]
=
y
;
sync
.
fPosition
[
2
]
=
z
;
bs
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bs
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bs
)
;
}
|
|
|

27.09.2016, 19:09
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Возвращает ID игрока , на заданном радиусе от прицела.
C++:
[CODE]
void
CalcScreenCoors
(
D3DXVECTOR3
*
vecWorld
,
D3DXVECTOR3
*
vecScreen
)
{
D3DXMATRIX
m
(
(
float
*
)
(
0xB6FA2C
)
)
;
DWORD
*
dwLenX
=
(
DWORD
*
)
(
0xC17044
)
;
DWORD
*
dwLenY
=
(
DWORD
*
)
(
0xC17048
)
;
vecScreen
->
x
=
(
vecWorld
->
z
*
m
.
_31
)
+
(
vecWorld
->
y
*
m
.
_21
)
+
(
vecWorld
->
x
*
m
.
_11
)
+
m
.
_41
;
vecScreen
->
y
=
(
vecWorld
->
z
*
m
.
_32
)
+
(
vecWorld
->
y
*
m
.
_22
)
+
(
vecWorld
->
x
*
m
.
_12
)
+
m
.
_42
;
vecScreen
->
z
=
(
vecWorld
->
z
*
m
.
_33
)
+
(
vecWorld
->
y
*
m
.
_23
)
+
(
vecWorld
->
x
*
m
.
_13
)
+
m
.
_43
;
double
fRecip
=
(
double
)
1.0
/
vecScreen
->
z
;
vecScreen
->
x
*=
(
float
)
(
fRecip
*
(
*
dwLenX
)
)
;
vecScreen
->
y
*=
(
float
)
(
fRecip
*
(
*
dwLenY
)
)
;
}
int
GetPlayerTarget
(
int
radius
)
{
static
int
iX
;
static
int
iY
;
for
(
int
i
=
0
;
i
getSAMP
(
)
->
getPlayers
(
)
->
iIsListed
[
i
]
!=
1
)
continue
;
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
==
NULL
)
continue
;
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
==
NULL
||
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
continue
;
D3DXVECTOR3 vecPos
;
vecPos
.
x
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
12
]
;
vecPos
.
y
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
13
]
;
vecPos
.
z
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
14
]
;
D3DXVECTOR3 screenPos
;
CalcScreenCoors
(
&
vecPos
,
&
screenPos
)
;
if
(
screenPos
.
z
iX
+
(
radius
)
)
||
(
screenPos
.
y
>
iY
+
(
radius
)
)
||
(
screenPos
.
x
Использование :
C++:
Код:
static
int
iID
=
-
1
;
iID
=
GetPlayerTarget
(
50
)
|
|
|

13.04.2018, 22:33
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Муззи
Обработчик событий OnClickMouse.
Ты идиот.
C++:
[CODE]
bool
OnMouseHover
(
float
x
,
float
y
,
float
w
,
float
h
)
{
POINT MousePosition
=
SF
->
getGame
(
)
->
getCursorPos
(
)
;
return
(
MousePosition
.
x
>=
x
&&
MousePosition
.
x
=
y
&&
MousePosition
.
y
|
|
|

23.10.2018, 21:29
|
|
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами:
6908018
Репутация:
213
|
|
3D круг с этой темы - https://blast.hk/threads/25508/
C++:
Код:
void
krug3d
(
float
x
,
float
y
,
float
z
,
float
radius
,
D3DCOLOR Color
)
{
float
enpos
[
3
]
;
float
screen
[
2
]
,
screen2
[
2
]
;
float
step
=
M_PI
*
2.0
/
2047
;
for
(
float
rot
=
0
;
rot
getGame
(
)
->
convert3DCoordsToScreen
(
enpos
[
0
]
,
enpos
[
1
]
,
enpos
[
2
]
,
&
screen
[
0
]
,
&
screen
[
1
]
)
;
if
(
screen
[
0
]
!=
NULL
&&
screen2
[
0
]
!=
NULL
)
SF
->
getRender
(
)
->
DrawLine
(
screen
[
0
]
,
screen
[
1
]
,
screen2
[
0
]
,
screen2
[
1
]
,
2
,
Color
)
;
screen2
[
0
]
=
screen
[
0
]
;
screen2
[
1
]
=
screen
[
1
]
;
}
}
пример использования:
C++:
Код:
krug3d
(
X
,
Y
,
Z
,
3
,
0xFF00FF00
)
;
|
|
|

24.10.2018, 01:31
|
|
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами:
5351007
Репутация:
0
|
|
Эмулирует анимацию стана как при попадании пули в скин.
Полезно для разработчиков сайлент аимов
Сообщение от Спойлер
C++:
Код:
int
GetWeaponFlag
(
int
weaponID
)
{
if
(
weaponID
==
24
||
weaponID
==
25
||
weaponID
==
27
)
return
140
;
else
if
(
weaponID
==
34
||
weaponID
==
33
)
return
75
;
return
-
1
;
}
void
EmulateStunShot
(
WORD playerId
,
int
weapon_id
,
int
damage_per_hit
)
{
int
stun_weapon
=
GetWeaponFlag
(
weapon_id
)
;
if
(
stun_weapon
!=
-
1
)
{
actor_info
*
actorInfo
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
playerId
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
if
(
actorInfo
==
nullptr
)
return
;
CPed
*
Ped
=
GAME
->
GetPools
(
)
->
GetPed
(
(
DWORD
*
)
actorInfo
)
;
if
(
Ped
==
nullptr
)
return
;
CEntity
*
Entity
=
Ped
->
GetDamageEntity
(
)
;
CWeapon
*
Wep
=
PEDSELF
->
GetWeapon
(
(
eWeaponType
)
weapon_id
)
;
if
(
Entity
==
nullptr
||
Wep
==
nullptr
)
return
;
Wep
->
GenerateDamageEvent
(
Ped
,
Entity
,
(
eWeaponType
)
weapon_id
,
damage_per_hit
,
PED_PIECE_RIGHT_ARM
,
GetWeaponFlag
(
weapon_id
)
)
;
}
}
Пример:
C++:
Код:
EmulateStunShot
(
228
,
24
,
42
)
;
Рассчитывает кватернион поворота к указанному игроку.
Сообщение от Спойлер
C++:
Код:
void
RotateQuaternion
(
float
angle_radian
,
float
*
quat_w
,
float
*
quat_x
)
{
*
quat_x
=
-
1
*
sinf
(
angle_radian
/
2.0f
)
;
*
quat_w
=
cosf
(
angle_radian
/
2.0f
)
;
}
void
RotateMeToPlayer
(
WORD player
)
{
stOnFootData ft
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
;
BitStream bs
;
actor_info
*
actorInfo
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
player
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
if
(
actor_info
==
nullptr
)
return
;
CPed
*
Ped
=
GAME
->
GetPools
(
)
->
GetPed
(
(
DWORD
*
)
actorInfo
)
;
CVector pers
;
if
(
Ped
==
nullptr
)
return
;
Ped
->
GetTransformedBonePosition
(
BONE_RIGHTWRIST
,
&
pers
)
;
float
angle
=
-
1
*
atan2
(
pers
.
fX
-
PEDSELF
->
GetPosition
(
)
->
fX
,
pers
.
fY
-
PEDSELF
->
GetPosition
(
)
->
fY
)
;
RotateQuaternion
(
angle
,
&
ft
.
fQuaternion
[
0
]
,
&
ft
.
fQuaternion
[
3
]
)
;
bs
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bs
.
Write
(
(
PCHAR
)
&
ft
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bs
)
;
}
Пример:
C++:
Код:
RotateMeToPlayer
(
228
)
;
// Использовать в хуке онфут даты с блокировкой оригинальной синхры.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|