ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Как установить камеру на определённые координаты? (https://forum.antichat.xyz/showthread.php?t=1383191)

Ya Zaregalsya 30.03.2021 15:18

Пытался изменить координаты камеры через
Код:

SF->getGame()->getCamera()->setMatrix()
, инструкция выполнялась в цикле с задержкой в один кадр. Увы, визуально это ничего не изменило, если выводить координаты камеры на экран, то можно заметить, что иногда там мерцают новые значения, но по всей видимости игра точно так же меняет значения на свои. Как решить эту проблему и есть ли где-то открытый код с примером?

legendabrn 15.04.2021 21:40

Код:





Код:

void getScreenResolution(int& horizontal, int& vertical)
    {
        RECT desktop;
        const HWND hDesktop = GetDesktopWindow();
        GetWindowRect(hDesktop, &desktop);
        horizontal = desktop.right;
        vertical = desktop.bottom;
    }
 
    void getCrossHairPos(int& crosshairPosX, int& crosshairPosY)
    {
        int iHeight, iWidth;
        getScreenResolution(iWidth, iHeight);
        float chOff1 = *(float*)0xB6EC10, chOff2 = *(float*)0xB6EC14;
        crosshairPosX = iWidth * chOff2;
        crosshairPosY = iHeight * chOff1;
    }

    void cameraset(float X, float Y) {

        CVector mypos;
        CVector enpos;
        CVector vector;
        int h, v;

        enpos.fX = X;
        enpos.fY = Y;

        getCrossHairPos(h, v);
        mypos.fX = h;
        mypos.fY = v;

        vector = mypos - enpos;
        float AngleX = atan2f(vector.fY, -vector.fX) - M_PI / 2;

        *(float*)0xB6F258 = -(AngleX - M_PI / 2);
    }



Код:





Код:

cameraset(500,500);

Ya Zaregalsya 15.04.2021 21:51

Цитата:

Сообщение от anticoder

Код:





Код:

void getScreenResolution(int& horizontal, int& vertical)
    {
        RECT desktop;
        const HWND hDesktop = GetDesktopWindow();
        GetWindowRect(hDesktop, &desktop);
        horizontal = desktop.right;
        vertical = desktop.bottom;
    }

    void getCrossHairPos(int& crosshairPosX, int& crosshairPosY)
    {
        int iHeight, iWidth;
        getScreenResolution(iWidth, iHeight);
        float chOff1 = *(float*)0xB6EC10, chOff2 = *(float*)0xB6EC14;
        crosshairPosX = iWidth * chOff2;
        crosshairPosY = iHeight * chOff1;
    }

    void cameraset(float X, float Y) {

        CVector mypos;
        CVector enpos;
        CVector vector;
        int h, v;

        enpos.fX = X;
        enpos.fY = Y;

        getCrossHairPos(h, v);
        mypos.fX = h;
        mypos.fY = v;

        vector = mypos - enpos;
        float AngleX = atan2f(vector.fY, -vector.fX) - M_PI / 2;

        *(float*)0xB6F258 = -(AngleX - M_PI / 2);
    }



Код:





Код:

cameraset(500,500);


Это точно установка положения камеры, а не её направления? Не хватает третьей оси координат.

legendabrn 15.04.2021 21:54

Цитата:

Сообщение от Ya Zaregalsya

Это точно установка положения камеры, а не её направления? Не хватает третьей оси координат.

направления

Ya Zaregalsya 15.04.2021 22:05

Цитата:

Сообщение от anticoder

направления

Есть рабочий код на Lua, там используется функция setFixedCameraPosition(), но в SAMPFUNCS такой нет.

UPD: Такая функция есть, называется SetCamPositionForFixedMode(), сейчас попробую.

UPD: Не работает.

Ya Zaregalsya 16.04.2021 22:16

@FYP создал Moonloader и SAMPFUNCS. Может он знает почему одна и та же функция работает в ML и не работает в SF?

Ya Zaregalsya 19.04.2021 02:00

@sanєk , этой функции нет в вики. Как Вы узнали о её существовании?

Ya Zaregalsya 19.04.2021 02:25

Мдааа. @FYP удалил все функции для изменения позиции камеры и даже не указал это в истории изменений Муна.

sаnеk 19.04.2021 03:20

Цитата:

Сообщение от Ya Zaregalsya

@sanєk , этой функции нет в вики. Как Вы узнали о её существовании?

а я тут причем?

Ya Zaregalsya 19.04.2021 03:21

Цитата:

Сообщение от sanєk

а я тут причем?

Цитата:

Сообщение от Ya Zaregalsya

Есть рабочий код на Lua, там используется функция setFixedCameraPosition(), но в SAMPFUNCS такой нет.

UPD: Такая функция есть, называется SetCamPositionForFixedMode(), сейчас попробую.
UPD: Не работает.

Судя по всему, эта функция присутствовала в вики когда Вы писали скрипт, но была удалена позже.


Время: 08:54