Понедельник, 25.11.2024, 19:08Привет Гость
ArmA-2 Моды, миссии, кампании, аддоны, скрипты, редактор

Главная | Файлы | FAQ | Платформа | О сайте | Контакты | Зарегистрироваться | Войти
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Введение параметров выбора для карты
PIONEERДата: Суббота, 12.02.2011, 21:54 | Сообщение # 1
Лейтенант
Сообщений: 589
Репутация: 16
Статус: Offline
Вступление.
С последним бета-патчем БИСы ввели функциональное лобби-меню по выбору параметров игры - время, кол-во очков для победы и пр. Эта функция является весьма долгожданной для картотроителей, она позволяет добавлять множество описанных параметров для игры, так много, как вам того желается! На данный же момент большая часть MP-миссий ограничена всего двумя параметрами, и в 9 случаях из 10 одна из них была введением/отключением скриптов Norrins Revive оставляя для творчества всего один параметр.

Старый метод:
Старая метОда также работает, и вы должны это учитывать при создании ваших новых массивов. Вот пример старого метода:

Code
titleParam1 = "Grass Options";
valuesParam1[] = {0, 1, 2};
defValueParam1 = 0;
textsParam1[] = {"NoGrass", "Medium", "Normal"};

Длее, параметры могут быть считаны из init.sqf, например так...

Code

[param1, "false"] execvm "Grass_Changer\grass_changer.sqf";

В новом методе будут присутствовать параметры param1 и param2 для достижения совместимости с уже существующими миссиями. Вы должны помнить об этом, потому что новый массив paramsArray использует 0 и 1 значения для "старых методов", вне зависимости, описаны они либо нет. Так что теоретически для добавления новых параметров при помощи массива paramsArray строка будет выглядеть так: paramsArray[param1,param2, thirdparam]

Новый метод.

Новый метод пользует класс из description.ext называемый Params. Описывается он так:

Code
class Params
{
class DayTime
{
//paramsArray[2]
title = "Time Of Day";
values[] = {0,16,8};
texts[] = {"Dusk","Midday","Dawn"};
default = 16;
};
class Revive
{
// paramsArray[3]
title = "Number of Revives:";
values[] = {2000,1000,20,10,7,5};
texts[] = {"No Revive","Infinite - Cadet","20 - Easy ","10 - Normal","7 - Hard","5 - Extreme"};
default = 20;
};
class Grass
{
// paramsArray[4]
title = "Grass Options";
values[] = {0, 1, 2};
texts[] = {"NoGrass", "Medium", "Normal"};
default = 0;
};
};

После его описания вы сможете его считать из init.sqf таким образом:

Code
skiptime (paramsArray select 2);
[(paramsArray select 4), "false"] execvm "Grass_Changer\grass_changer.sqf"

На самом деле, это достаточно просто. Самое главное - помнить, что старые param1 и param2 занимают первые 2 места в массиве paramsArray.

Пример миссии можете взять тут.

Обычно имея дело с установкой параметров запуска миссии вам надо сверять индексы до того, как задавать им значения. Этот метод кажется мне не очень удобным, и я решил разработать новый, который использует класс параметров и придаёт ему необходимое значение, а не делать выборку из длиннющего списка.

Достаточно просто привести уже существующие ваши наработки к моим массивам processParamsArray.
Самое основное что надо будет сделать - это, помимо копирования самого скрипта, ввести нужные и правильные значения для класса параметров:

Code
class ViewDistance // 0
{
title = "View Distance:";
values[] = { 1200, 1500, 2000, 2500, 3000 };
texts[] = { "1.2 km", "1.5 km", "2 km", "2.5 km", "3km" };
default = 2000;
code = "setViewDistance %1";
};

Как видно из этого примера, мы задаём для параметра setViewDistance значение %1. Знаете что такое %1? Это т.н. заполнитель - он будет подменён на соотв. параметр из массива values[].
Если параметры не меняются - то будет применено значение 2000, оно прописано по умолчанию.

После того, как скрипт получит значение %1 он компилируется и исполняется. Собственно говоря - это всё, остальные примеры смотрите в description.ext

ВНИМАНИЕ! Доступные для использования параметры - целые (integer), плавающие (float) и логические (boolean: true=1 и false=0). Arma2 1.04 имеет проблемы при использовании плавающих значений (значения с плавающей точкой, float) в качестве значения по умолчанию!!!

Качать отсюда по кнопочке download

За идею спасибо mikey, за перевод - мне. Оригинал тут.
Вольный перевод текста с сайта www.ofpec.com произведён мною.

Автор: Party3AH




Хотите больше новостей? Подписывайтесь на мою рассылку
 
  • Страница 1 из 1
  • 1
Поиск:





Copyright web-pioneer.at.ua © 2011 | Используются технологии uCoz
Админ: PIONEER | web-pioneer@yandex.ru | Любое или частичное копирования материала с веб-сайта web-pioneer.at.ua запрещено! А то прокляну.