This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Камера

MentaL

Новый участник
23 Сен 2021
24
0
60
При входе в игру стоит камера.
Но как только я в другой файле js меняю координаты камеры и вызываю её, она все равно становиться на первоначальное место, то есть как и при входе в игру.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,794
1,595
211
28
Сейчас и сборку угадаем, и твой код тоже прикинем в голове примерно, и по нему же поможем.
Ну если хочешь так, давай помогу так:
Вон там измени, потому что вот здесь не срабатывает.

Однажды мы научимся просить помощи.
 

MentaL

Новый участник
23 Сен 2021
24
0
60

JavaScript:
function showCamera(type) {
    if (type) {
        camera = mp.cameras.new('default', new mp.Vector3(-555.2332763671875, 4418.078125, 21.3134708404541), new mp.Vector3(0, 0, 0), 40);

        camera.pointAtCoord(-585.2332763671875, 4418.078125, 21.3134708404541); // камера при входе
        camera.setActive(true);
        mp.game.cam.renderScriptCams(true, false, 0, true, false);
    }
    else if (type == false) {
        camera.destroy();
        mp.game.cam.renderScriptCams(false, false, 0, true, false);
    }
}
 

kiraz

Специалист
17 Апр 2023
424
87
83
Ты надеюсь на рендер подписал функцию?
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,833
1,887
208
35
так у тебя зашиты же здесь координаты в функции этой
в каком бы месте ты её не вызвал, они здесь для камеры переопределятся

ну типа
Код:
camera = mp.cameras.new('default', new mp.Vector3(-555.2332763671875, 4418.078125, 21.3134708404541), new mp.Vector3(0, 0, 0), 40);
как написано так и работает
 

MentaL

Новый участник
23 Сен 2021
24
0
60
Пофиксить то как?

Убирал, и толку нет
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,833
1,887
208
35
Пофиксить то как?

Убирал, и толку нет
как можно "пофиксить" то, что работает так как и должно?
если ты хочешь чтобы работало иначе - просто напиши по другому, не используй эту функцию например а напиши свою
или заведи какой-нибудь новый type например, который будешь здесь проверять - и задавать координаты создаваемой камеры в зависимости от него
и передавай его сюда
 

MentaL

Новый участник
23 Сен 2021
24
0
60
Даже если я укажу pos.x, pos.y, pos.z и брать создание камеры
Все равно тоже самое происходит
 

MentaL

Новый участник
23 Сен 2021
24
0
60
покажи полностью свой код
то место где и что ты создаёшь и вызываешь
Сам код:

JavaScript:
function showCamera(posX, posY, posZ, lookX, lookY, lookZ, fov, type) {
  if (type) {
    camera = mp.cameras.new('default', new mp.Vector3(posX, posY, posZ), new mp.Vector3(lookX, lookY, lookZ), fov);

    camera.pointAtCoord(lookX, lookY, lookZ);
    camera.setActive(true);
    mp.game.cam.renderScriptCams(true, false, 0, true, false);
  } else if (type == false) {
    camera.destroy();
    mp.game.cam.renderScriptCams(false, false, 0, true, false);
  }
}

Вызов функции камеры при входе в игру
JavaScript:
showCamera(-555.2332763671875, 4418.078125, 21.3134708404541, -585.2332763671875, 4418.078125, 21.3134708404541, 60, true);

И далее если вызываю другую камеру по той же формуле, то перекидывает на первый вариант.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,794
1,595
211
28
Не уверен, что это решение, но я бы проверял на существование старую камеру и удалял её, если ты не сделал это через type false, вот так:
JavaScript:
function showCamera(posX, posY, posZ, lookX, lookY, lookZ, fov, type)
{
    if (camera != null)
    {
        camera.setActive(false);
        camera.destroy();
        camera = null;
    }
    if (type)
    {
        camera = mp.cameras.new('default', new mp.Vector3(posX, posY, posZ), new mp.Vector3(lookX, lookY, lookZ), fov);
        camera.pointAtCoord(lookX, lookY, lookZ);
        camera.setActive(true);
        mp.game.cam.renderScriptCams(true, false, 0, true, false);
        return;
    }
    mp.game.cam.renderScriptCams(false, false, 500, true, false);
}

Моя теория заключается в том, что из-за того, что ты не избавлялся от старой камеры - рейдж возвращал тебя на неё.
 
Реакции: Inoi