Модератор форума: СМЕРШ, Slon |
Форум РЕДАКТОР - ArmA 1 Скрипты Как зациклить скрипт |
Как зациклить скрипт |
› Суббота
› 05.06.2010
› 19:42
› Сообщение #
Нужно зациклить команду в скрипте. Как это сделать?
snar="SH_122_HE" createVehicle [(getPos select 0 trigger)+random 100,(getPos select 1 trigger)+random 100,(getPos select 2 trigger)+random 50] Вызываешь по радио и начинается обстрел. Как это зациклить в файле sqs? И можно ли сделать это определенное колличестфо раз? Например, 5 выстрелов?
Si vis pacem para bellum
|
› Суббота
› 05.06.2010
› 19:54
› Сообщение #
используй метку и goto на неё
#Meta ......... goto "Meta" с проверкой кол-ва проходов |
› Суббота
› 05.06.2010
› 20:20
› Сообщение #
Спасибо!
В SQS или SQF записывать? Есть разница? Сообщение отредактировал SAN444EZ - Суббота, 05.06.2010, 20:35
Si vis pacem para bellum
|
› Суббота
› 05.06.2010
› 20:34
› Сообщение #
разница есть и значительная. Начиная с запускающей строки.
While {true} do { - бесконечный цикл for "_a" from 0 to 10 do {- один из вариантов конечного |
› Суббота
› 05.06.2010
› 20:40
› Сообщение #
Прости. Я зелёный ещё.Только начал изучать. Как зациклить до бесконечности? Просто что бы повторялась команда?
While {true} do { While {true} do{--}-запускает какое то действие при условии true? Действие вписывать в фигурные скобочки? Сообщение отредактировал SAN444EZ - Суббота, 05.06.2010, 20:57
Si vis pacem para bellum
|
› Суббота
› 05.06.2010
› 21:21
› Сообщение #
Для пояснений по отдельным командам заглядывай в справочник, а то так зелёным и останешся
Quote (SAN444EZ) запускает какое то действие при условии true? Действие вписывать в фигурные скобочки? всё так, условием может быть что угодно |
› Суббота
› 05.06.2010
› 21:45
› Сообщение #
Ясно. Спасибо.
Si vis pacem para bellum
|
› Вторник
› 11.11.2014
› 14:39
› Сообщение #
.sqs устаревший синтаксис, подойдет разве что для камеры. Сами BIS`ы рекомендуют использовать .sqf
Функции sqf были добавлены в язык позднее, и по ряду причин получили меньшую популярность чем sqs скрипты. Тем не менее, это наиболее удобное и мощное скриптовое средство, и единственная возможность создавать подпрограммы. Ранее в sqs скриптах не было механизма позволяющего выносить многократно выполняющиеся действия в подпрограммы, что приводило в общем случае к дублированию кода, и меньшей его прозрачности. Тот факт, что из одного sqs скрипта можно запустить другой мало спасает, так как выполняться он будет как отдельная ВМ. Sqf функции развивают идею интерпретируемых строк («code string»), использовавшихся ранее в командах foreach и двухоперандной форме count. Поскольку рассматриваемый язык является интерпретируемым, то всегда существует возможность рантайм парсинга и выполнения любой строки содержащей выражения языка. Чтобы сделать эту возможность более полной были добавлены следующие команды: call— самая важная, рапарсивает и выполняет строку, вызываемая сторона может получать аргументы, и возвращать значение. if then else — команды реализующие ветвление "если ... то ... иначе" while do — команды реализующие цикл "пока ... выполнять ..." private — теперь в одном файле может присутствовать несколько самостоятельных участков кода, и эта команда решает возникшую проблему с пространствами имен loadFile — возвращает содержимое файла как строку preprocessFile — содержимое файла обрабатывается си подобным препроцессором и возвращается как строка Для нас это в первую и главную очередь означает, что можно создавать свои функции и подпрограммы, ну и конечно использовать средства управления потоком специально придуманные для «белых людей». Их хоть и не много, этих средств, но нас, пишущих для офп, тоже не густо, так что нам пока хватит -)) Добавлено (11.11.2014, 14:39) Код while{alive s1}do{ s1 switchMove "AmovPsitMstpSlowWrflDnon_Smoking"; sleep 3; };
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Вторник
› 11.11.2014
› 15:08
› Сообщение #
voin64s, попробуй составить условие с использованием команды knowsAbout. Для того чтобы сделать "составное" условие используй (в скобках синонимы):
&& (and) — логичекое И, истина если оба операнда истина, иначе ложь || (or) — логичекое ИЛИ, истина если хотя бы один из операндов истина, иначе ложь ! (not) — логичекое НЕ, истина если операнд ложь, иначе ложь Пример (не проверял): while{alive s1 and (s1 knowsAbout player >= 3)}do{};
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Вторник
› 11.11.2014
› 15:35
› Сообщение #
voin64s, можно и так, и так проще, но не совсем то что нужно.
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Вторник
› 11.11.2014
› 16:07
› Сообщение #
|
› Вторник
› 11.11.2014
› 16:49
› Сообщение #
voin64s, совсем то что нужно зависит от тебя). Разница между knowsAbout и distance, в твоем случае в том, что первая команда возвращает значение, определяющее что знает юнит A о юните B. Вторая команда возвращает тупо дистанцию, т.е спрятаться уже не получится, бот будет "взволнован" не зависимо от того видит он тебя или нет. Выбор за тобой.
alex70-03, Примногоблагодарен))
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Вторник
› 11.11.2014
› 16:56
› Сообщение #
voin64s, бесплатные) По лицензии GNU General Public License
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Вторник
› 11.11.2014
› 16:57
› Сообщение #
voin64s, и плюсы и минусы бесплатные
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Среда
› 03.12.2014
› 13:50
› Сообщение #
а как его потом убрать
Добавлено (03.12.2014, 13:50) |
| |||
Чат сайта |