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

  #8  
Старый 14.12.2017, 21:14
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Почему выдает какие то жуткие числа? Не собейт. И это идентично функции PEDSELF->GetPosition() ? Которая в SF.

Ниже функа рабочая.

Вообщем мне надо сравнивать мои координаты и координаты игроков в стриме , ну и выдавать ближайщего ко мне по дистанции. Но если сажусь в кар , это не работает(

Можно это вообще организовать с помощью структур , или надо подключать CPed ещё?

Или это чуть другое , не очень понимаю с этими матрицами.

C++:





Код:
[
20
:
09
:
13
]
0.000000
-
0.000000
886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000
[
20
:
09
:
13
]
0.000000
-
0.000000
886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000


C++:





Код:
float
*
xX
;
float
*
yY
;
float
*
zZ
;
try
{
xX
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
]
;
yY
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
1
]
;
zZ
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
2
]
;
addMessageToChat
(
-
1
,
"%f %f %f"
,
&
xX
,
&
yY
,
&
zZ
)
;
}
catch
(
int
f
)
{
addMessageToChat
(
-
1
,
"%i"
,
f
)
;
}


C++:





[CODE]
short
GetNearestPlayerID
(
)
{
//CVector *pos, *spos; // pos - позиция игрока, spos - наша позиция
float
distance
;
// дистанция
float
testing
=
0xFFFFFFFF
;
uint16_t
nearestId
=
-
1
;
for
(
uint16_t
it
=
0
;
it

iIsListed
[
it
]
!=
1
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
it
]
==
NULL
)
continue
;
if
(
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
==
NULL
||
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
iShowNameTag
!=
0
)
{
distance
=
GetDistanceXYZ
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
0
]
,
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
1
]
,
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
2
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
0
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
1
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
2
]
)
;
// сравниваем
if
(
distance

 
Ответить с цитированием