|
|
Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Скрипты Как синхронизировать скрипты между игроками? (Как синхронизировать скрипты между игроками?) |
Как синхронизировать скрипты между игроками? |
› Пятница
› 13.11.2015
› 01:59
› Сообщение #
Опишу проблему. Делаю миссию с Tasa-ами, Но столкнулся с проблемой. Все таски прописаны в init, первый выполняется по триггеру а выполнение следующего производится через addAction и подтверждение что переменная True производится через отдельный скрипт. В итоге получается то что первая миссия появляется и выполняется у всех, а следующая только у того кто выполнит действие, и каждый кто выполнит действие получает миссию, но по init после выполнения, addAction должен пропасть. Так вот, как мне сделать чтобы после того как кто то один выполнит действие оно происходило у всех? Я не сильно шарю в скриптах, надеюсь правильно выразил мысли.
|
› Пятница
› 13.11.2015
› 07:43
› Сообщение #
Это тебе покажет направление
проблемы скрипта для МП |
› Пятница
› 13.11.2015
› 15:16
› Сообщение #
Я честно пытался понять как это сделать. Но так как я не силен в скриптах, я был бы очень благодарен если бы меня так сказать ткнули носом что и куда писать))
Вот мой init.sqf Цитата "mark35" setMarkerAlpha 0; "makr3" setMarkerAlpha 0; "mmm1" setMarkerAlpha 0; "mmm1_1" setMarkerAlpha 0; "bb1" setMarkerAlpha 0; sleep 5; playsound "Beep"; Task1 = player createSimpleTask [""]; Task1 setSimpleTaskDescription ["", "", ""]; Task1 setSimpleTaskDestination (getMarkerPos "mark1"); Task1 setTaskState "Assigned"; taskHint ["НОВОЕ ЗАДАНИЕ!", [1, 1, 1, 1], "taskNew"]; player setCurrentTask Task1; waituntil {if (cast1) exitWith {true};}; Task1 setTaskState "Succeeded"; taskHint ["ЗАДАЧА ВЫПОЛНЕНА!", [0, 1, 0, 1], "taskDone"]; deleteMarker "makr1"; deleteMarker "makr2"; "makr3" setMarkerAlpha 1; nout1 addAction ["<t color='#FFBF18'>Бла, бла</t>", "da3.sqf"]; sleep 5; playsound "Beep"; Task2 = player createSimpleTask [""]; Task2 setSimpleTaskDescription ["", "", ""]; Task2 setSimpleTaskDestination (getMarkerPos "mark1"); Task2 setTaskState "Assigned"; taskHint ["НОВОЕ ЗАДАНИЕ!", [1, 1, 1, 1], "taskNew"]; player setCurrentTask Task2; waituntil {if (cast2) exitWith {true};}; Task2 setTaskState "Succeeded"; taskHint ["ЗАДАЧА ВЫПОЛНЕНА!", [0, 1, 0, 1], "taskDone"]; А это da3.sqf Цитата cast2 = true; |
› Пятница
› 13.11.2015
› 21:26
› Сообщение #
у тя экшен запускает файл-который убирает препятствие в waituntil
сделай немного иначе. строку, waituntil {if (cast2) exitWith {true};}; и всё что ниже переносиш в файл da3.sqf ставиш тирггер с условием cast2 активация as = execVM "da3.sqf" А это da3.sqf Цитата if ! cast2 exitWith { cast2 = true; publicVariable "cast2"; }; Task2 setTaskState "Succeeded"; taskHint ["ЗАДАЧА ВЫПОЛНЕНА!", [0, 1, 0, 1], "taskDone"]; таким образом, Экшен запустит файл, который активирует триггер, который сработает у всех и запустит файл. |
› Пятница
› 13.11.2015
› 23:26
› Сообщение #
Сделал все как ты написал, все срабатывает, но задача 2 все равно становиться локальной.
Я прикреплю миссию. Может если будет время посмотришь. Блин только она на Тушенских модах. Может из за них проблема? Добавлено (13.11.2015, 23:26) |
› Пятница
› 13.11.2015
› 23:35
› Сообщение #
не буду я в миссиях разбираться. я тебе показал как делать. это твоя проблема.
|
› Пятница
› 13.11.2015
› 23:36
› Сообщение #
я понял что показал, но не работает. хоть делал точь в точь...
|
› Пятница
› 13.11.2015
› 23:46
› Сообщение #
ну значит надо НЕ точь-в-точь. а так как по логике должно происходить.
|
› Суббота
› 14.11.2015
› 00:33
› Сообщение #
Ех если бы понимать... Спасибо большое и на этом))
|
| |||
| |||
Чат сайта |