Показать сообщение отдельно

  #4  
Старый 20.09.2021, 16:42
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

Цитата:
Сообщение от S0Ft1k1337  

Можно конечно, но как ты его повернешь на игровые координаты мира
Очень просто, если я тебя верно понял.

C++:





Код:
#include 
float
GetAngleBetweenObjectsRad
(
float
&
x1
,
float
&
y1
,
float
&
x2
,
float
&
y2
)
{
return
atan2
(
x2
-
x1
,
y2
-
y1
)
;
}
float
TurnToCoordinates
(
DWORD
&
cped
,
float
&
x
,
float
&
y
)
{
DWORD mt
=
*
(
DWORD
*
)
(
cped
+
0x14
)
;
float
px
=
*
(
float
*
)
(
mt
+
0x30
)
,
py
=
*
(
float
*
)
(
mt
+
0x34
)
;
float
heading
=
GetAngleBetweenObjectsRad
(
px
,
py
,
x
,
y
)
;
*
(
float
*
)
(
cped
+
0x55C
)
=
heading
;
// фактический угол поворота
*
(
float
*
)
(
cped
+
0x558
)
=
heading
;
// чтобы не было "плавного поворота". если нужно плавно - удалить строку
}
void
Main
(
)
{
// поворачиваем нашего игрока, чтобы он смотрел в сторону координат x = 100, y = 50
DWORD myPlayer
=
*
(
DWORD
*
)
(
0xB6F5F0
)
;
TurnToCoordinates
(
myPlayer
,
100
,
50
)
;
}
 
Ответить с цитированием