Здравствуйте.возникла проблема при использовании команды setPos и setDir в мультиплеере.
Тобишь план такой,игроки идут заходят в триггер дальше,он срабатывает и запускает Bloc.sqf в нем прописано:
Лучший Ответ 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];Перейти к сообщению
Отправлено 26 April 2023 - 18:43
Здравствуйте.возникла проблема при использовании команды setPos и setDir в мультиплеере.
Тобишь план такой,игроки идут заходят в триггер дальше,он срабатывает и запускает Bloc.sqf в нем прописано:
Отправлено 27 April 2023 - 01:44
P. S.
Команды нужно вызывать там, где объект является локальным.
Отправлено 27 April 2023 - 08:50
есть подраздел Problems и раздел Notes, прочитай их.
P. S.
Команды нужно вызывать там, где объект является локальным.
c setDir ясно,а вот с setPos нет...Объект обычный ящик и он локальный,тобишь это не бот.Обычный ящик и если у меня он перемещается сразу,то у друга с задержкой,либо совсем не появляется.Может использовать команду publicVariableServer "power1_1"?
Отправлено 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]; }
и будет ли он работать как надо?
Отправлено 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
Отправлено 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]; };
работает без задержек.
Отправлено 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];
Отправлено 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];
Но почему же тогда тот код тоже сработал?Но всё равно спасибо за этот код и за разъяснение.
Отправлено 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];
может ли быть так(что это вроде нормально работает в мультиплеере) что это с вязано с тем что я запускаю код из триггера вот так
Отправлено 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]; };
Бред вообще написан, читай документацию.
Отправлено 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]; };
Бред вообще написан, читай документацию.
спасибо большое за твои ответы
Отправлено 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; };
Так лучше?
Отправлено 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 нету.
Ещё раз повторяю, бред написан.
Так лучше?
Лучше читать документацию прежде чем что-либо писать.
Отправлено 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 нету.
Ещё раз повторяю, бред написан.
Так лучше?
Лучше читать документацию прежде чем что-либо писать.
Понял,спасибо тебе большое