Перейти к содержимому


Фотография

setPos и setDir в мп


Лучший Ответ Schatten , 29 April 2023 - 15:12

11Varan11, да уж, или ты не читаешь документацию, или не понимаешь прочитанное. Особенно это касается функции BIS_fnc_param.
А это решение:

[[O1, [7008.003, 1985.85, 0.801], 138.617], {
    params ["_object", "_position", "_direction"];

    _object setDir _direction;
    _object setPos _position;
}] remoteExec ["call", O1];
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 26 April 2023 - 18:43

Здравствуйте.возникла проблема при использовании команды  setPos и setDir  в мультиплеере.

Тобишь план такой,игроки идут заходят в триггер дальше,он срабатывает и запускает Bloc.sqf в нем прописано:

{power1_1 setPos [7003.524,1990.658,1.28]} remoteExec ["bis_fnc_call"];
{power1_1 setDir 229.440} remoteExec ["bis_fnc_call"];
 
но объект появляется с задержкой(либо у другого игрока совсем не появляется) и развернутым в другую сторону хотя setDir написан правильно(значение всмысле 229.440).
В диночке все норм,но в мультиплеере это работает не корректно.Как это испавить.чтобы и в одиночке нормально и в мп?

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 27 April 2023 - 01:44

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

есть подраздел Problems и раздел Notes, прочитай их.

P. S.
Команды нужно вызывать там, где объект является локальным.


  • 0

#3 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 27 April 2023 - 08:50

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

есть подраздел Problems и раздел Notes, прочитай их.

P. S.
Команды нужно вызывать там, где объект является локальным.

c setDir ясно,а вот с setPos нет...Объект обычный ящик и он локальный,тобишь это не бот.Обычный ящик и если у меня он перемещается сразу,то у друга с задержкой,либо совсем не появляется.Может использовать команду publicVariableServer "power1_1"?


  • 0

#4 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 27 April 2023 - 14:47

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

есть подраздел Problems и раздел Notes, прочитай их.

P. S.
Команды нужно вызывать там, где объект является локальным.

уместен ли тут такой код?

if (isServer) then { power1_1 setPos [7003.524,1990.658,1.28]; power1_1 setDir 229.440; } else { [power1_1,[7003.524,1990.658,1.28],229.440] remoteExecCall ["setPos", 2]; }

 

и будет ли он работать как надо?


  • 0

#5 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 27 April 2023 - 21:51

Объект обычный ящик и он локальный,тобишь это не бот.

Бот или не бот не влияет на локальность объекта.
 

Обычный ящик и если у меня он перемещается сразу,то у друга с задержкой,либо совсем не появляется.

У того, кто инициировал перемещение, оно происходит быстрее. Если у кого-то не появляется, значит, код плохо написан.
 

уместен ли тут такой код? if (isServer) then { power1_1 setPos [7003.524,1990.658,1.28]; power1_1 setDir 229.440; } else { [power1_1,[7003.524,1990.658,1.28],229.440] remoteExecCall ["setPos", 2]; }

Смотря где он написан. Но вообще я очень сомневаюсь.
 

и будет ли он работать как надо?

Проверь.


Сообщение отредактировал Schatten: 27 April 2023 - 21:51

  • 0

#6 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 29 April 2023 - 13:37

 

Объект обычный ящик и он локальный,тобишь это не бот.

Бот или не бот не влияет на локальность объекта.
 

Обычный ящик и если у меня он перемещается сразу,то у друга с задержкой,либо совсем не появляется.

У того, кто инициировал перемещение, оно происходит быстрее. Если у кого-то не появляется, значит, код плохо написан.
 

уместен ли тут такой код? if (isServer) then { power1_1 setPos [7003.524,1990.658,1.28]; power1_1 setDir 229.440; } else { [power1_1,[7003.524,1990.658,1.28],229.440] remoteExecCall ["setPos", 2]; }

Смотря где он написан. Но вообще я очень сомневаюсь.
 

и будет ли он работать как надо?

Проверь.

 

проверил вот этот код

if (isServer) then { O1 setPos [7008.003,1985.85,0.801]; O1 setDir 138.617; } else { ["setPos",[O1,[7008.003,1985.85,0.801],138.617]] remoteExecCall ["BIS_fnc_param", 2]; };

работает без задержек.


  • 0

#7 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 29 April 2023 - 15:12   Лучший Ответ

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.
А это решение:

[[O1, [7008.003, 1985.85, 0.801], 138.617], {
    params ["_object", "_position", "_direction"];

    _object setDir _direction;
    _object setPos _position;
}] remoteExec ["call", O1];

  • 0

#8 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 30 April 2023 - 10:45

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.
А это решение:

[[O1, [7008.003, 1985.85, 0.801], 138.617], {
    params ["_object", "_position", "_direction"];

    _object setDir _direction;
    _object setPos _position;
}] remoteExec ["call", O1];

Но почему же тогда тот код тоже сработал?Но всё равно спасибо за этот код и за разъяснение.


  • 0

#9 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 30 April 2023 - 12:51

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.
А это решение:

[[O1, [7008.003, 1985.85, 0.801], 138.617], {
    params ["_object", "_position", "_direction"];

    _object setDir _direction;
    _object setPos _position;
}] remoteExec ["call", O1];

может ли быть так(что это вроде нормально работает в мультиплеере) что это с вязано с тем что я запускаю код из триггера вот так 

if (isServer) then { 
     
    ["telepower.sqf", "BIS_fnc_execVM", false] spawn BIS_fnc_MP; 
} else { 
    
    ["telepower.sqf", "BIS_fnc_execVM", false] remoteExec ["execVM", 0, true]; 
};

  • 0

#10 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 30 April 2023 - 15:09

Но почему же тогда тот код тоже сработал?

Потому что код выполнился в ветке if, где он более-менее рабочий.
 

может ли быть так(что это вроде нормально работает в мультиплеере) что это с вязано с тем что я запускаю код из триггера

"Это" -- это что?
 

if (isServer) then {            ["telepower.sqf", "BIS_fnc_execVM", false] spawn BIS_fnc_MP;  } else {           ["telepower.sqf", "BIS_fnc_execVM", false] remoteExec ["execVM", 0, true];  };

Бред вообще написан, читай документацию.


  • 0

#11 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 30 April 2023 - 16:29

 

Но почему же тогда тот код тоже сработал?

Потому что код выполнился в ветке if, где он более-менее рабочий.
 

может ли быть так(что это вроде нормально работает в мультиплеере) что это с вязано с тем что я запускаю код из триггера

"Это" -- это что?
 

if (isServer) then {            ["telepower.sqf", "BIS_fnc_execVM", false] spawn BIS_fnc_MP;  } else {           ["telepower.sqf", "BIS_fnc_execVM", false] remoteExec ["execVM", 0, true];  };

Бред вообще написан, читай документацию.

 

спасибо большое за твои ответы


  • 0

#12 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 30 April 2023 - 23:19

 

 

 

if (isServer) then {            ["telepower.sqf", "BIS_fnc_execVM", false] spawn BIS_fnc_MP;  } else {           ["telepower.sqf", "BIS_fnc_execVM", false] remoteExec ["execVM", 0, true];  };

Бред вообще написан, читай документацию.

 

а если использовать это if (isServer) then { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_MP; } else { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_remoteExec; };

Так лучше?


  • 0

#13 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 01 May 2023 - 11:54

а если использовать это if (isServer) then { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_MP; } else { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_remoteExec; };

1 Если isServer равно true, то зачем с помощью BIS_fnc_MP выполнять код на сервере?
2 Из красной рамки на BIKI по

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

:

This function has been replaced by remoteExec and remoteExecCall.

3 Функции BIS_fnc_remoteExec нету.
Ещё раз повторяю, бред написан.
 

Так лучше?

Лучше читать документацию прежде чем что-либо писать.


  • 0

#14 OFFLINE   11Varan11

11Varan11

    Ефрейтор

  • Пользователи
  • 64 сообщений
  • Откуда:Kostroma

Отправлено 01 May 2023 - 19:30

 

а если использовать это if (isServer) then { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_MP; } else { ["telepower.sqf", "BIS_fnc_execVM", false] call BIS_fnc_remoteExec; };

1 Если isServer равно true, то зачем с помощью BIS_fnc_MP выполнять код на сервере?
2 Из красной рамки на BIKI по

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

:

This function has been replaced by remoteExec and remoteExecCall.

3 Функции BIS_fnc_remoteExec нету.
Ещё раз повторяю, бред написан.
 

Так лучше?

Лучше читать документацию прежде чем что-либо писать.

 

Понял,спасибо тебе большое


  • 0




Яндекс.Метрика