SAMPFUNCS

PED

Новичок
Автор темы
8
0
Такой вопрос как в SAMPFUNCS сделать так чтобы отправлять серверу или же клиенту то что игрок находится на метке не телепортировав пида.
 
Решение
а как сделать чтобы кординаты считывались с мини карты и туда тепались
C++:
CVector GetBlipVector() {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

CVector GetCheckpointVector() {
    CVector pos;
    DWORD mark = GAME->GetCheckpoints()->FindFreeMarker()->GetIdentifier();
    bool active = GAME->GetCheckpoints()->GetCheckpoint(mark)->IsActive();
    if (active)
        pos =...

zTechnology

Известный
1,101
485
C++:
void syncOnfoot(CVector pos)
{
    OnFootData data = SF->getSAMP()->getPlayers()->localPlayerInfo.data->onFootData;
    data.position[0] = pos.fX;
    data.position[1] = pos.fY;
    data.position[2] = pos.fZ;

    BitStream bs;
    bs.Write(static_cast<BYTE>(ID_PLAYER_SYNC));
    bs.Write(reinterpret_cast<PCHAR>(&data), sizeof(OnFootData));
    SF->getRakNet()->SendPacket(&bs);
}
 

PED

Новичок
Автор темы
8
0
C++:
void syncOnfoot(CVector pos)
{
    OnFootData data = SF->getSAMP()->getPlayers()->localPlayerInfo.data->onFootData;
    data.position[0] = pos.fX;
    data.position[1] = pos.fY;
    data.position[2] = pos.fZ;

    BitStream bs;
    bs.Write(static_cast<BYTE>(ID_PLAYER_SYNC));
    bs.Write(reinterpret_cast<PCHAR>(&data), sizeof(OnFootData));
    SF->getRakNet()->SendPacket(&bs);
}
а как сделать чтобы кординаты считывались с мини карты и туда тепались
 

zTechnology

Известный
1,101
485
а как сделать чтобы кординаты считывались с мини карты и туда тепались
C++:
CVector GetBlipVector() {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

CVector GetCheckpointVector() {
    CVector pos;
    DWORD mark = GAME->GetCheckpoints()->FindFreeMarker()->GetIdentifier();
    bool active = GAME->GetCheckpoints()->GetCheckpoint(mark)->IsActive();
    if (active)
        pos = *GAME->GetCheckpoints()->GetCheckpoint(mark)->GetPosition();
    return pos;
}