
01.05.2025, 23:38
|
|
Познающий
Регистрация: 17.08.2013
Сообщений: 33
С нами:
6703949
Репутация:
58
|
|
Does someone know why I do always get 65535? I basically want to get the IDs of the players in my vehicle. I get it while I'm in the car without passengers.
C++:
Код:
auto
myVehicle
=
playerPool
->
GetLocalPlayer
(
)
->
m_nCurrentVehicle
;
//gives correct samp id
if
(
pVehiclePool
->
m_bNotEmpty
[
myVehicle
]
)
{
samp
::
CVehicle
*
pSampVehicle
=
pVehiclePool
->
m_pObject
[
myVehicle
]
;
CVehicle
*
pVehicle
=
pSampVehicle
->
m_pGameVehicle
;
auto
idDriver
=
playerPool
->
Find
(
pVehicle
->
m_pDriver
)
;
// always 65565
}
I have also tested:
Код:
Код:
auto myVehicle = playerPool->GetLocalPlayer()->m_nCurrentVehicle;
if (pVehiclePool->m_bNotEmpty[myVehicle])
{
CVehicle* pVehicle = pVehiclePool->m_pGameObject[myVehicle];
auto idDriver = playerPool->Find(pVehicle->m_pDriver);
}
The goal would be getting this:
C++:
Код:
std
::
vector
GetIDPlayersFromCurrentVehicle
(
)
{
samp
::
CVehiclePool
*
pVehiclePool
=
samp
::
RefNetGame
(
)
->
GetVehiclePool
(
)
;
samp
::
CPlayerPool
*
playerPool
=
samp
::
RefNetGame
(
)
->
GetPlayerPool
(
)
;
std
::
vector
playerIDs
;
auto
myVehicle
=
playerPool
->
GetLocalPlayer
(
)
->
m_nCurrentVehicle
;
if
(
pVehiclePool
->
m_bNotEmpty
[
myVehicle
]
)
{
CVehicle
*
pVehicle
=
pVehiclePool
->
m_pGameObject
[
myVehicle
]
;
auto
idDriver
=
playerPool
->
Find
(
pVehicle
->
m_pDriver
)
;
if
(
idDriver
!=
65535
)
{
playerIDs
.
push_back
(
idDriver
)
;
}
unsigned
char
numPassengers
=
pVehicle
->
m_nNumPassengers
;
for
(
unsigned
char
i
=
0
;
i
m_apPassengers
[
i
]
;
if
(
passenger
)
{
auto
idPassenger
=
playerPool
->
Find
(
passenger
)
;
if
(
idPassenger
!=
65535
)
{
playerIDs
.
push_back
(
idPassenger
)
;
}
}
}
}
return
playerIDs
;
}
|
|
|