Если отдать в getActorPos локального актёра, то всё работает нормально, если другого, то игра крашится. В чём проблема?
CVector DevKit::getActorPos(int actorId)
{
CVector actorPos;
actorPos.fX = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12];
actorPos.fY = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 1];
actorPos.fZ = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 2];
return actorPos;
}
void PositioningInterface::Interface::PresentHandler()
{
if (this->bShow)
{
if (GetAsyncKeyState(this->keys.magnetizeToPlayer))
{
stRemotePlayer* pNearestVictim;
CVector nearestVictimPos;
float nearestVictimDist;
int victimsIter = 0;
for (int i = 0; i < SAMP_MAX_PLAYERS; i++)
{
if (SF->getSAMP()->getPlayers()->IsPlayerDefined(i, true) && SF->getSAMP()->getPlayers()->sLocalPlayerID != i)
{
stRemotePlayer* thisVictim = SF->getSAMP()->getPlayers()->pRemotePlayer[i];
CVector thisVictimPos = DevKit::getActorPos(SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(i));
Попробуй if (GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam())->GetMode() == eCamMode::MODE_AIMING). Полный список каммодов см. в CCamera.h.