Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты Скриптовые команды (всякая всячина) |
Скриптовые команды |
› Вторник
› 28.01.2014
› 20:49
› Сообщение #
Хандлер штука локальная. работает сервер
все ЕХ записываем в массив для удобства удаления делаем флаг, который установит любой выстрел _ms = []; { _ex = _x addEventHandler ["fired", {flag_fired = true}]; _ms set [_forEachIndex, [_x, _ex]] } ForEach AllUnits; flag_fired = false; _tm = time + 60; // время 60 сек WaitUntil {(_tm < time) || flag_fired}; // ожидание - либо время выйдет, либо пальнёт ктонить. if flag_fired then {Был выстрел}; удаление EX { (_x select 0) removeEventHandler ["fired", _x select 1] } ForEach _ms; |
› Вторник
› 11.03.2014
› 05:35
› Сообщение #
Подскажите пожалуйста есть ли какой нибудь скрипт на более длительный или непрекращающейся дым подбитой техники???Допустим танка
Мы русские и потому победим
|
› Вторник
› 11.03.2014
› 13:54
› Сообщение #
Hitman8125, ну разве что бисовской функцией
[obj,7,time,false,false] spawn BIS_Effects_Burn; obj -объект, к которому прикрепляется, 7 - величина пожара Здесь под спойлером подробное описание функции |
› Вторник
› 11.03.2014
› 18:26
› Сообщение #
andrucio, спасибо,видел это описание,но не совсем понял куда этот скрипт прописать??В инициализацию самому танку я уже вбивал эту строчку,но всё дефолтно остаётся и время и размер огня,да и дым тоже определенное время коптит,а потом проходит.Примеры из армы 2 нет смысла качать,потому что она у меня не установлена,а так понять ни могу ....
Мы русские и потому победим
|
› Вторник
› 11.03.2014
› 18:55
› Сообщение #
|
› Вторник
› 11.03.2014
› 19:16
› Сообщение #
alex70-03, да....Вообщем выглядит у меня это так:В юните Танк в главе - название у меня стоит obj
А в главе определение(инициализация) стоит вот этот скрипт - script = [obj,7,time,false,false] spawn BIS_Effects_Burn; И после того как подрываю танк,то он горит и дымится дефолтное время с обычным размерам огня....
Мы русские и потому победим
|
› Среда
› 12.03.2014
› 02:28
› Сообщение #
Игра позволяет запустить в скрипте два параллельно работающих цикла, запущеных в одном файле sqf? Можно конечно сверху до низу читать в общем цикле, но проще если кусок кода который должен обрабатываться раз в секунду бесконечно, запускать отдельно от кода у которого цикл разграничивается WaitUntil.
|
› Среда
› 12.03.2014
› 13:31
› Сообщение #
|
› Среда
› 12.03.2014
› 18:33
› Сообщение #
Hitman8125, вот тебе скрипт, который у меня работает
; ======= ПЛАТФОРМА ДЛЯ СОЗДАНИЯ SP МИССИЙ ========= ; ================ СТУДИЯ САРМАТ =================== ; = http://arma.at.ua/ = http://web-pioneer.at.ua/ = ; Автор: [SARMAT]PIONEER ; Скрипт горения техники и зданий(обьектов) ; Автивация: ; [обьект,true\false]exec"scripts\fire.sqs" ; При: true - загорится сразу ; При: false - задымится после повреждения и следом загорится после уничтожения _v = _this select 0 _dom = _this select 1 ; горит здание ?_dom: script = [_v,10,time,false,false] spawn bis_effects_burn; ; дымится техника @! canmove _v _script = [_v,1,time,false,false] spawn bis_effects_burn ; горит техника @!alive _v _script = [_v,5,time,false,false] spawn bis_effects_burn exit |
› Среда
› 12.03.2014
› 23:29
› Сообщение #
Цитата andrucio151795AleksSan, да хоть десять. Через spawn или call. Главное вызвать этот поток в нужном месте.
А вот как на практическом примере? По ссылкам там коды исполнения без пояснения, пример бы. Вот в моем случае покажите, код ниже максимально упростил дабы не усложнять. Код \\первый цикл, проверяется общее количество солдат с трех групп, когда они все будут уничтожены, срабатывает второй скрипт и создает три новых группы. while {true} do { if (count (units _grupa1 + units _grupa2 + units _grupa3) < 1) then {newgruppa = true}; sleep 1; }; \\условие создания групп newgruppa стало true и пошли новые группы. while {true} do { waitUntil {newgruppa}; _grupa1 = [getmarkerPos "Start", WEST, ["B_Soldier_TL_F", "B_Soldier_GL_F", "B_Soldier_GL_F"]] call BIS_fnc_spawnGroup; _grupa2 = [getmarkerPos "Start", WEST, ["B_Soldier_TL_F", "B_Soldier_GL_F", "B_Soldier_GL_F"]] call BIS_fnc_spawnGroup; _grupa3 = [getmarkerPos "Start", WEST, ["B_Soldier_TL_F", "B_Soldier_GL_F", "B_Soldier_GL_F"]] call BIS_fnc_spawnGroup; _newgruppa = false; sleep 1; }; В одном скрипте как запустить параллельную работу одновременно двух этих циклов? Сообщение отредактировал AleksSan - Среда, 12.03.2014, 23:34
|
› Четверг
› 13.03.2014
› 00:39
› Сообщение #
AleksSan,
эти два легко объединяются в один. вместо while {true} do { waitUntil {newgruppa}; ....... пишеш while {true} do { waitUntil {count (units _grupa1 + units _grupa2 + units _grupa3) < 1}; |
› Четверг
› 13.03.2014
› 00:58
› Сообщение #
alex70-03, Вы наверное не прочитали что я написал выше.Я либо вбиваю этот скрипт не туда,либо что ещё не так.У меня к Вам просьба большая,если у Вас действительно работает этот скрипт в Арма 3,то сделайте пожалуйста примерчик,что бы я посмотрел,как и куда Вы это вбиваете и как это вообще выглядит...Очень уж надо для миссии,что бы танк после детонации не переставал дымится.
Мы русские и потому победим
|
› Четверг
› 13.03.2014
› 03:05
› Сообщение #
AleksSan, эти два легко объединяются в один. вместо while {true} do { waitUntil {newgruppa}; ....... пишеш while {true} do { waitUntil {count (units _grupa1 + units _grupa2 + units _grupa3) < 1}; Да это я знаю и весь мой длиннющий скрипт (не этот) выполняется последовательно сверху до низу в одном потоке цикла. Спрашивал как бы некоторые команды вывести в отдельный поток цикла но в рамках одного скрипта что бы локальные переменные так и оставались локальными. То бишь пример бы двух параллельных циклов. |
› Четверг
› 13.03.2014
› 07:19
› Сообщение #
AleksSan, Параллельные циклы будут независимы, в противном случае в них нет смысла.
|
› Четверг
› 13.03.2014
› 18:44
› Сообщение #
Ну а как эти циклы запустить параллельно то, в примере? andrucio написал что через spawn или call можно, но без примера простенького не разберусь. Сообщение отредактировал AleksSan - Четверг, 13.03.2014, 18:45
|
| |||
Чат сайта |