 |

06.12.2022, 00:22
|
|
Участник форума
Регистрация: 10.12.2018
Сообщений: 137
С нами:
3908139
Репутация:
23
|
|
Добрый день/вечер/ночь. 💤
Подскажите функцию или формулы.
Пишу External софт esp.
Задача получить экранные координаты обьекта из 3д мира не разу подобное не делал с 3д, только радар.
Не как не пойму, есть позиция x, y, z врага, позиция игрока x, y, z и угол поворота камеры x, z и можно fov найти. В планах рисовать к примеру квадрат на враге.
Подскажите пожалуйста. 🤔
|
|
|

06.12.2022, 00:49
|
|
Новичок
Регистрация: 05.05.2022
Сообщений: 29
С нами:
2119359
Репутация:
8
|
|
Код:
Код:
Screen_X = (World_X - Player_X) / (angle_X * FOV) + (screen_width/2)
Screen_Y = (World_Y - Player_Y) / (angle_Z * FOV) + (screen_height/2)
Здесь World_X, World_Y - это координаты объекта в 3D-мире, Player_X, Player_Y - координаты игрока в 3D-мире, angle_X, angle_Z - угол поворота камеры, FOV - угол обзора, screen_width, screen_height - ширина и высота экрана.
P.S.
Если нужно подробнее, пишите. Не знаю ваш уровень 
|
|
|

09.12.2022, 01:16
|
|
Участник форума
Регистрация: 10.12.2018
Сообщений: 137
С нами:
3908139
Репутация:
23
|
|
Сообщение от teresen
Код:
Код:
Screen_X = (World_X - Player_X) / (angle_X * FOV) + (screen_width/2)
Screen_Y = (World_Y - Player_Y) / (angle_Z * FOV) + (screen_height/2)
Здесь World_X, World_Y - это координаты объекта в 3D-мире, Player_X, Player_Y - координаты игрока в 3D-мире, angle_X, angle_Z - угол поворота камеры, FOV - угол обзора, screen_width, screen_height - ширина и высота экрана.
P.S.
Если нужно подробнее, пишите. Не знаю ваш уровень
Cпасибо , позже проверю . Если что отпишу .
|
|
|

09.12.2022, 19:39
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от Gafask
Добрый день/вечер/ночь. 💤
Подскажите функцию или формулы.
Пишу External софт esp.
Задача получить экранные координаты обьекта из 3д мира не разу подобное не делал с 3д, только радар.
Не как не пойму, есть позиция x, y, z врага, позиция игрока x, y, z и угол поворота камеры x, z и можно fov найти. В планах рисовать к примеру квадрат на враге.
Подскажите пожалуйста. 🤔
McDota/src/Utils/Draw.cpp at master · LWSS/McDota
Dota 2 Linux Cheat. Contribute to LWSS/McDota development by creating an account on GitHub.
github.com
ток тебе нужно матрицу игры найти
|
|
|

12.12.2022, 03:01
|
|
Участник форума
Регистрация: 10.12.2018
Сообщений: 137
С нами:
3908139
Репутация:
23
|
|
Если под матрицей вы имеете ввиду x y z игрока то она есть. А если нет то что то я не понимаю что такое матрица .
|
|
|

27.12.2022, 11:14
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Сообщение от Gafask
Добрый день/вечер/ночь. 💤
Подскажите функцию или формулы.
Пишу External софт esp.
Задача получить экранные координаты обьекта из 3д мира не разу подобное не делал с 3д, только радар.
Не как не пойму, есть позиция x, y, z врага, позиция игрока x, y, z и угол поворота камеры x, z и можно fov найти. В планах рисовать к примеру квадрат на враге.
Подскажите пожалуйста. 🤔
Функция от s0beit, добавляем ее в прокси IDirect3DDevice9.cpp
C++:
Код:
if
(
gta_menu_active
(
)
)
return
;
if
(
cheat_state
->
_generic
.
cheat_panic_enabled
)
return
;
if
(
!
g_dwSAMP_Addr
||
!
g_SAMP
||
!
g_Players
)
return
;
if
(
!
pGameInterface
)
return
;
if
(
isBadPtr_GTA_pPed
(
pPedSelf
)
)
return
;
actor_info
*
player
=
getGTAPedFromSAMPPlayerID
(
id
)
;
actor_info
*
me
=
actor_info_get
(
ACTOR_SELF
,
NULL
)
;
if
(
!
player
)
return
;
CPed
*
pPed
=
pGameInterface
->
GetPools
(
)
->
GetPed
(
(
DWORD
*
)
player
)
;
if
(
!
pPed
)
return
;
float
max_up_val
=
0
,
max_down_val
=
0
,
max_left_val
=
0
,
max_right_val
=
0
;
bool
invalid
=
false
;
for
(
int
bone_id
=
BONE_PELVIS1
;
bone_id
=
BONE_PELVIS1
&&
bone_id
=
BONE_RIGHTUPPERTORSO
&&
bone_id
=
BONE_LEFTUPPERTORSO
&&
bone_id
=
BONE_LEFTHIP
&&
bone_id
=
BONE_RIGHTHIP
&&
bone_id
GetBonePosition
(
(
eBone
)
bone_id
,
&
bone
)
;
D3DXVECTOR3 bone_pos
;
bone_pos
.
x
=
bone
.
fX
;
bone_pos
.
y
=
bone
.
fY
;
bone_pos
.
z
=
bone
.
fZ
;
D3DXVECTOR3 bone_screen_pos
;
CalcScreenCoors
(
&
bone_pos
,
&
bone_screen_pos
)
;
if
(
bone_screen_pos
.
z
max_up_val
)
max_up_val
=
bone_screen_pos
.
y
;
if
(
bone_screen_pos
.
y
max_right_val
)
max_right_val
=
bone_screen_pos
.
x
;
if
(
bone_screen_pos
.
x
D3DBoxBorder
(
max_left_val
,
max_down_val
,
widht_box
,
height_box
,
D3DCOLOR_RGBA
(
0
,
255
,
0
,
255
)
,
0
)
;
}
}
|
|
|

03.02.2023, 14:00
|
|
Участник форума
Регистрация: 10.12.2018
Сообщений: 137
С нами:
3908139
Репутация:
23
|
|
Сообщение от teresen
Код:
Код:
Screen_X = (World_X - Player_X) / (angle_X * FOV) + (screen_width/2)
Screen_Y = (World_Y - Player_Y) / (angle_Z * FOV) + (screen_height/2)
Здесь World_X, World_Y - это координаты объекта в 3D-мире, Player_X, Player_Y - координаты игрока в 3D-мире, angle_X, angle_Z - угол поворота камеры, FOV - угол обзора, screen_width, screen_height - ширина и высота экрана.
P.S.
Если нужно подробнее, пишите. Не знаю ваш уровень
Привет👋 , появилось несколько вопросов . angle_X = значение должно быть от 0.0f до 360.0f ? angle_Z(Y) = значение тут должно быть от 0 до 90 или от -90 до 90,центр 0 . По поводу FOV , FOV я так понял по стандарту в играх 90 , если не ошибаюсь FOV это угол обзора игрока он обычно о 0 до 360 🙄 ?
screen_width, screen_height - ширина и высота экрана, если окно в маленьком размере то я по логике могу же записывать в нее размер окна вместо размера экрана ? Где-то я читал что для еще нужно указывать позицию камеры в игровом мире , ну грубо говоря ее координаты .
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|