|
|
Серьёзные Игры на Тушино
Ваш IP 3.149.250.1 | Группа "Гости" Приветствую Вас Гость | RSS
|
Для картостроителей. Введение параметров выбора для карты
| |
[AT]Party3AH | Дата: Пятница, 28.08.2009, 00:15:43 | Сообщение # 1 |
Модератор
Группа: Администраторы
Сообщений: 1199
Статус: Offline
| Вступление. С последним бета-патчем БИСы ввели функциональное лобби-меню по выбору параметров игры - время, кол-во очков для победы и пр. Эта функция является весьма долгожданной для картотроителей, она позволяет добавлять множество описанных параметров для игры, так много, как вам того желается! На данный же момент большая часть MP-миссий ограничена всего двумя параметрами, и в 9 случаях из 10 одна из них была введением/отключением скриптов Norrins Revive оставляя для творчества всего один параметр. Замечание: Эта опция работает только с бета-патчем 1.03, доступным по ссылке. Старый метод: Старая метОда также работает, и вы должны это учитывать при создании ваших новых массивов. Вот пример старого метода: titleParam1 = "Grass Options"; valuesParam1[] = {0, 1, 2}; defValueParam1 = 0; textsParam1[] = {"NoGrass", "Medium", "Normal"}; Длее, параметры могут быть считаны из init.sqf, например так... [param1, "false"] execvm "Grass_Changer\grass_changer.sqf"; В новом методе будут присутствовать параметры param1 и param2 для достижения совместимости с уже существующими миссиями. Вы должны помнить об этом, потому что новый массив paramsArray использует 0 и 1 значения для "старых методов", вне зависимости, описаны они либо нет. Так что теоретически для добавления новых параметров при помощи массива paramsArray строка будет выглядеть так: paramsArray[param1,param2, thirdparam] Новый метод. Новый метод пользует класс из description.ext называемый Params. Описывается он так: 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 таким образом: skiptime (paramsArray select 2); [(paramsArray select 4), "false"] execvm "Grass_Changer\grass_changer.sqf" На самом деле, это достаточно просто. Самое главное - помнить, что старые param1 и param2 занимают первые 2 места в массиве paramsArray. Пример миссии можете взять тут. Вольный перевод текста с сайта www.ofpec.com произведён мною.
С уважением, Дмитрий aka Party3AH
|
|
| |
[AT]Party3AH | Дата: Четверг, 01.10.2009, 09:11:01 | Сообщение # 2 |
Модератор
Группа: Администраторы
Сообщений: 1199
Статус: Offline
| Обычно имея дело с установкой параметров запуска миссии вам надо сверять индексы до того, как задавать им значения. Этот метод кажется мне не очень удобным, и я решил разработать новый, который использует класс параметров и придаёт ему необходимое значение, а не делать выборку из длиннющего списка. Достаточно просто привести уже существующие ваши наработки к моим массивам 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, за перевод - мне. Оригинал тут.
С уважением, Дмитрий aka Party3AH
|
|
| |
Ustin | Дата: Четверг, 01.10.2009, 20:06:30 | Сообщение # 3 |
Зело много пишет
Группа: Заблокированные
Сообщений: 360
Статус: Offline
| Интересно. Огласите весь список параметров пжалуста.
|
|
| |
[AT]Party3AH | Дата: Четверг, 01.10.2009, 21:32:53 | Сообщение # 4 |
Модератор
Группа: Администраторы
Сообщений: 1199
Статус: Offline
| Дим, я могу только предложить тебе скачать сам пример и посмотреть, что там наворотили в description.ext Я не пытался таким образом что-либо сделать - только перевёл статеечку. Ты же видишь, чем этот подход отличается от прежнего? Тут сразу задействована функция переменной (согласен, что не на всё есть переменные, но на большинство опций типа трава+-, вьюдистанс+- и погода какая-нить свои переменные есть) а не отсыл в массив, который работает по жуткой (имхо) схеме "если выбрано 1 то гото 25, если выбрано 2 то гото 39".
С уважением, Дмитрий aka Party3AH
|
|
| |
Ustin | Дата: Четверг, 01.10.2009, 21:40:26 | Сообщение # 5 |
Зело много пишет
Группа: Заблокированные
Сообщений: 360
Статус: Offline
| Я и посмотрел. дистанция видимости время дня погода сила травки режим отладки К примеру погода. Есть туман и есть дождь. А можно туман с дождем:) ? И наверно можно больше задавать пареметров?
|
|
| |
[AT]Party3AH | Дата: Четверг, 01.10.2009, 22:01:34 | Сообщение # 6 |
Модератор
Группа: Администраторы
Сообщений: 1199
Статус: Offline
| Если туман отдельно и дождь отдельно - то безусловно можно. Если оба параметра задаёт одна переменная определённым значением - то вероятно должно быть значение для дождя и тумана, хотя не факт. К примеру, если используется одна переменная - то это будет так: 1 - дождь и туман, 2-дождь и нет тумана, 3 - туман и нет дождя, 4 - нихера нет и все умерли. Больше параметров - для чего, для выбора по одному пункту (т.е. дист. видимости от 1 км. до 10 км с шагом в 100 метров) или 150 параметров для миссии - время, погода, трава, цивилы (наверняка тоже есть), животные и т.д.? По идее сейчас можно сколько угодно плодить, и одного и другого.
С уважением, Дмитрий aka Party3AH
|
|
| |
Ustin | Дата: Четверг, 01.10.2009, 23:18:17 | Сообщение # 7 |
Зело много пишет
Группа: Заблокированные
Сообщений: 360
Статус: Offline
| Я прикалываюсь просто Ты сам смотрел? class Weather // 2 { title = "Weather"; values[] = { 0, 1, 2, 3, 4, 5 }; texts[] = { "Clear", "Overcast", "Light Rain", "Heavy Rain", "Light Fog", "Heavy Fog" }; default = 0; code = "[%1] execVM 'mk4\setWeather.sqf'"; }; ******************************************************** case 0: { [0, 0, 0] }; // Clear case 1: { [0.6, 0, 0.1] }; // Cloudy case 2: { [0.8, 0.3, 0.1] }; // Light Rain case 3: { [0.9, 0.8, 0.3] }; // Heavy Rain case 4: { [0.6, 0, 0.8] }; // Light Fog case 5: { [0.6, 0, 0.95] }; // Heavy fog default { [0, 0, 0] } }; _overcast = _weather select 0; _rain = _weather select 1; _fog = _weather select 2;
|
|
| |
[AT]Party3AH | Дата: Пятница, 02.10.2009, 16:59:10 | Сообщение # 8 |
Модератор
Группа: Администраторы
Сообщений: 1199
Статус: Offline
| Дим, я арму последний раз запускал недели 1,5 назад Тока перевожу теперь, покамест.
С уважением, Дмитрий aka Party3AH
|
|
| |
Advard | Дата: Понедельник, 05.10.2009, 09:09:17 | Сообщение # 9 |
Зело много пишет
Группа: AT
Сообщений: 54
Статус: Offline
| Quote (Party3AH) ...животные... Вот если найдете как их совсем в миссии отключить - игроки вам памятник поставят .... да и сервак крутиться пошвыдче будет
|
|
| |
|
| |