<<<Назад <<< | <<<Меню>>> | >>> Далее>>> |
Соответствие обозначений текстовых полей в скрипте и в редакторе:
Локальная переменная "_this" зарезервирована для ссылки на список аргументов, переданных в скрипт из файла mission.sqm. Это может быть как один оаргумент, так и массив.
Пример 1: Получение одиночного аргумента и сохранение его в локальной переменной _vehicle:
_vehicle = _this
Пример 2: Получение нескольких аргументов и сохранение их в локальных переменных _vehicle, _id и _alive:
_vehicle = _this select 0
_id = _this select 1
_alive = _this select 2
Список переменных начинается с 0. Поэтому чтобы получить первый аргумент, нужно использовать команду _this select 0.
Вы можете создавать свои собственные переменные в миссии. Их значения проверяются в поле Condition и задаются в поле Activation.
Есть два вида переменные в игре: глобальные и локальные. Локальные переменные начинаются со знака "_", например, "_gvar" (без кавычек). Глобальные переменные доступны во всей миссии, любые поля ввода команд и скрипты могут работать с ними. Локальные же переменные имеют ограниченное действие, влиять на них могут только команды внутри скрипта, в котором они установлены. При каждом запуске скрипта локальные переменные создаются заново. Например, если локальная переменная "_test" установлена в файле testmission.sqm, то ее можно использовать только в рамках данного файла миссии. Если же в этом файле установлена глобальная переменная "test", то ее можно использовать и в файле testscript.sqs (передав ее туда в качестве аргумента), который запускается из миссии testmission.sqm.
Текстовые строки также используются в скрипте. Можно складывать отдельные строки для получения более длинных строк.
Например команда globalchat позволяет говорить игроку. Так вот эту фразу можно динамически генерировать в зависимости от условий:
aP globalchat ("Platoon " + "Bravo " + "is destroyed")
aP globalchat ("Platoon " + currentPlatoonName + " is destroyed")
Вы можете одномерные массивы переменных в игре. Массив имеет несколько элементов одного типа (например, только числа, или только слова) или разных типов (одновременного и числа, и слова).
Пример 1: Определение одномерного массива с одинаковым типом переменных:
favbands = ["Led Zeppelin","Aerosmith","Pink Floyd"];
Пример 2: Определение одномерного массива с различными типами переменных:
ledinfo = ["Led Zeppelin",1.0,false];
Пример 3: Получение третьего элемента из массива ledinfo и сохранение его в переменной stilltouring:
stilltouring = ledinfo select 2
Пример 4: Определение количества элементов в массиве favbands и сохранение результата в переменную numelements:
numelements = count favbands
Пример 5: Отображение всех элементов массива favbands в цикле foreach (aP – имя солдата в миссии, а _x – переменная цикла):
"aP globalchat _x" foreach favbands;
Вы также можете складывать и вычитать элементы различных массивов:
MyArray1 = ["One", "Two"]
MyArray2 = ["Three","For"]
GroupingArray = MyArray1 + MyArray2
Массив GroupingArray будет содержать элементы "One", "Two","Three","For".
MyArray1 = ["One", "Two","Three"]
MyArray2 = ["One"]
GroupingArray = MyArray1 - MyArray2
Массив GroupingArray будет содержать элементы "Two","Three".
Также можно производить операции с переменными элементами массивов. Допустим, массив PlayersArray содержит переменное число игроков:
_Player = _this select 0
?!(_Player in PlayersArray):PlayersArray = PlayersArray + [_Player]
_Player = _this select 0
?(_Player in PlayersArray): PlayersArray - [_Player]
Удалять элементы из массива можно также и таким способом:
MyArray = MyArray - [MyArray select 2]
Вы можете определять многомерные массивы. Они также могут быть составлены из элементов различных типов. Чтобы определить
многомерный массив, необходимо вместо одного или нескольких элементов уже созданного массива записать новый
массив.
Пример 1: Создание многомерного массива squadInfo:
squadInfo = [["aP","trooper1","trooper2"],5.0,true];
Пример 2: Получение значения третьего саб-элемента первого элемента массива squadInfo (то есть, "trooper2"):
troopername = (ledinfo select 0) select 2
Команда random позволяет генерировать числа случайным образом. В отличие от массивов она работает с числами начиная с 1! Чтобы она использовала и число 0, необходимо из условия генерации вычитать 0.5 (по какой-то причине вычет 1 приводит к ошибке деления на ноль!).
Пример 1: Генерация случайного числа от 1 до 10:
"random 10"
Пример 2: Выбор случайного элемента из массива mylist и присвоение его переменно nextelement (с учетом 0-го элемента!):
"nextelement = (random (count mylist)) - 0.5;"
<<<Назад <<< | <<<Меню>>> | >>> Далее>>> |