 |
|

30.03.2021, 15:18
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
Пытался изменить координаты камеры через
Код:
SF->getGame()->getCamera()->setMatrix()
, инструкция выполнялась в цикле с задержкой в один кадр. Увы, визуально это ничего не изменило, если выводить координаты камеры на экран, то можно заметить, что иногда там мерцают новые значения, но по всей видимости игра точно так же меняет значения на свои. Как решить эту проблему и есть ли где-то открытый код с примером?
|
|
|

15.04.2021, 21:40
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Код:
Код:
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);
}
Код:
|
|
|

15.04.2021, 21:51
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
Сообщение от 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);
}
Код:
Это точно установка положения камеры, а не её направления? Не хватает третьей оси координат.
|
|
|

15.04.2021, 21:54
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Сообщение от Ya Zaregalsya
Это точно установка положения камеры, а не её направления? Не хватает третьей оси координат.
направления
|
|
|

15.04.2021, 22:05
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
Сообщение от anticoder
направления
Есть рабочий код на Lua, там используется функция setFixedCameraPosition(), но в SAMPFUNCS такой нет.
UPD: Такая функция есть, называется SetCamPositionForFixedMode(), сейчас попробую.
UPD: Не работает.
|
|
|

16.04.2021, 22:16
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
@FYP создал Moonloader и SAMPFUNCS. Может он знает почему одна и та же функция работает в ML и не работает в SF?
|
|
|

19.04.2021, 02:00
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
@sanєk , этой функции нет в вики. Как Вы узнали о её существовании?
|
|
|

19.04.2021, 02:25
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
Мдааа. @FYP удалил все функции для изменения позиции камеры и даже не указал это в истории изменений Муна.
|
|
|

19.04.2021, 03:20
|
|
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами:
5512984
Репутация:
183
|
|
Сообщение от Ya Zaregalsya
@sanєk , этой функции нет в вики. Как Вы узнали о её существовании?
а я тут причем?
|
|
|

19.04.2021, 03:21
|
|
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами:
4714653
Репутация:
98
|
|
Сообщение от sanєk
а я тут причем?
Сообщение от Ya Zaregalsya
Есть рабочий код на Lua, там используется функция setFixedCameraPosition(), но в SAMPFUNCS такой нет.
UPD: Такая функция есть, называется SetCamPositionForFixedMode(), сейчас попробую.
UPD: Не работает.
Судя по всему, эта функция присутствовала в вики когда Вы писали скрипт, но была удалена позже.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|