Jump to content


Photo

Вопросы по скриптингу

Arma3 как плотформа для созда Скритпы

  • Please log in to reply
1486 replies to this topic

#61 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 29 July 2013 - 22:24

Да, появились новые модули, только как раз с модулем респауна техники опять проблема - машина респаунится не на стартовой позиции (как я указал), а в рандомной области рядом (с азимутом все ок). Все перетыкал не помогло, может не работает пока толком, или у меня не из того места руки растут?


Edited by aVoidPanic, 29 July 2013 - 22:25.

  • 0

#62 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 posts

Posted 30 July 2013 - 08:22

aVoidPanic, скриншот ошибки в студию.


  • 0

#63 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 30 July 2013 - 12:26

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

А

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 и

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 ко второй проблеме. Там где Position selection стоит Random. Ставлю Newest или Oldest ничего не меняется.


Edited by aVoidPanic, 30 July 2013 - 12:49.

  • 0

#64 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 posts

Posted 30 July 2013 - 13:22

В первой проблеме: ошибка  в самом скрипте, setVehicleinit больше не является рабочей командой. Автор скрипта я думаю уже заметил так, как нельзя скачать сам скрипт с BIS форума.

Насчет модуля, возможно еще на стадии разработки. 


  • 0

#65 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 30 July 2013 - 17:38

В первой проблеме: ошибка  в самом скрипте, setVehicleinit больше не является рабочей командой. Автор скрипта я думаю уже заметил так, как нельзя скачать сам скрипт с BIS форума.

Насчет модуля, возможно еще на стадии разработки. 

Спасибо, видимо новый патч всему виной.

Еще два глупых вопроса:

1. Как сделать респаун игроков в воздухе с парашютом?  :paratrooper: Имеется в виду каждый раз после смерти, а не изначально.

2. Как сделать респаун "волной"? Я

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 прочел, что - "Wave (волна) - регулирует счетчик возрождения, так, что игроки появляются вместе (задержка волны зависит от respawnDelay)".


Edited by aVoidPanic, 30 July 2013 - 18:27.

  • 0

#66 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 posts

Posted 31 July 2013 - 13:57

aVoidPanic, вопросы не глупые, у многих возникают такие проблемы. Можно не изобретать велосипед и поискать на просторах интернета ответы: 1. Респавн игрока в воздухе с парашютом:  

Автор скрипта: kylania

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

//Содержание init.sqffnc_letsFly = {	_para = createVehicle ["Parachute_US_EP1", getMarkerPos "mrk_dropZone", [], 0, "FLY"];	_para setPosATL [getPosATL _para select 0, getPosATL _para select 1, 20];	player moveInDriver _para;};call fnc_letsFly;player addMPEventHandler ["MPRespawn",{_this spawn fnc_letsFly;}];

Примечание: Скрипт написан для ArmA: Armed Assault, думаю проблем не возникнет с Армой 3.

 

2. К сожалению не видел как работает данный скрипт, но обычно для волн делают загон для игроков, где спавняться. Через какое-то время их либо телепортирует на поле битвы, либо исчезает барьер для выхода на определенное время. Но все это нужно самому автоматизировать.


  • 0

#67 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 31 July 2013 - 15:52


Можно не изобретать велосипед и поискать на просторах интернета ответы

Я искал, правда только для 3-ей Армы, чтоб не мучиться переделывать :pardon: Спасибо, пойду дальше ковыряться. Вот только не совсем пойму - [color=rgb(0,136,0);]"Parachute_US_EP1"[/color] это название парашюта из первой Армы?


Edited by aVoidPanic, 31 July 2013 - 15:53.

  • 0

#68 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 posts

Posted 31 July 2013 - 16:01

Вот только не совсем пойму - [color=#008800;]"Parachute_US_EP1"[/color] это название парашюта из первой Армы?

Так оно и есть. Сейчас пробовал найти имя класса парашюта Армы 3, безуспешно.
  • 0

#69 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 01 August 2013 - 23:37

Если нужно - configfile >> "CfgVehicles" >> "B_Parachute"

Сразу раскрытый - configfile >> "CfgVehicles" >> "Steerable_Parachute_F"


Edited by aVoidPanic, 03 August 2013 - 11:32.

  • 0

#70 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 23 August 2013 - 16:13

У меня такой вопрос возник - Как приказать юниту из группы починить машину, а после этого группа дальше бы отправилась по маршруту?

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

есть список команд, но из прошлых частей серии. Например машины раньше чинили другие машины  :db: Такой vehicle[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;] action ["repair", [/color]repairingObject[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;]] [/color]вариант не подходит.


Edited by aVoidPanic, 23 August 2013 - 20:18.

  • 0

#71 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 15 September 2013 - 15:50

Сразу куча вопросов:

 

1) Объекту Game Logic я вписал Waffe1 = "groundweaponholder" createVehicle getpos this; Waffe1 addMagazineCargo ["RPG32_F", 3]; Waffe1 addWeaponCargo ["launch_RPG32_F", 1]; Waffe1 setPos [getPos this select 0,getPos this select 1,0.00]; дабы "РПГ" валялось на дороге. Вопрос вот в чём - как добавить снаряд (магазин) в "РПГ", а не что бы он лежал отдельно?

 

2) Как сделать так, чтобы задание считалось выполненным при условии, что любой из игроков (миссия - мультиплеерная) возьмёт из ящика определённые предметы (как в стандартных "демонстрациях" например - миссия про дайвера, что ворует "титан" из "ифрита")

 

3) ....и как сделать так, чтобы задание считалось выполненным при условии, если все игроки находятся в одной области (например - все 4 игрока заходят в область - задание выполнено. 3 игрока заходят, а 1 при этом умер - выполнено. 3 заходят, а 1 находится в другом месте - не выполнено) Попытался, как можно понятнее объяснить, но все равно вышло ужасно  ^_^


  • 0

#72 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 posts
  • Откуда:Torrevieja, España

Posted 17 September 2013 - 01:08

1) Никак

 

2) Самое простое - триггерами.

Проверять в определенной области игроков и их снаряжение, сравнивать содержимое с классом того же титана

 

3) Также в триггере считать количество игроков определенной стороны/группы и пр...


  • 0

#73 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 17 September 2013 - 12:22

1) Никак

 

2) Самое простое - триггерами.

Проверять в определенной области игроков и их снаряжение, сравнивать содержимое с классом того же титана

 

3) Также в триггере считать количество игроков определенной стороны/группы и пр...

Вопрос как бы намекал - "какой именно скрипт использовать в триггере", но все равно спасибо)

 

Вот например можно проверить лежит ли 4 взрывпакета в ящике, но как я хз.


  • 0

#74 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 posts
  • Откуда:Torrevieja, España

Posted 17 September 2013 - 20:49

[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;]результат = [/color]getMagazineCargo[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;] объект;[/color]

[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;]В данном случае вместо объекта - ящик.[/color]

В результат запишется массив предметов в ящике и их количество.

Далее остается просто проверить элементы массива на совпадение с классом взрывпакета и проверкой их количества.


  • 0

#75 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 17 September 2013 - 21:55

[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;]результат = [/color]getMagazineCargo[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;] объект;[/color]

[color=rgb(0,0,0);font-family:sans-serif;font-size:13px;]В данном случае вместо объекта - ящик.[/color]

В результат запишется массив предметов в ящике и их количество.

Далее остается просто проверить элементы массива на совпадение с классом взрывпакета и проверкой их количества.

А ты не мог бы показать на примере?) Может быть ты подумал, что я начинающий "скриптер"? Неа, я абсолютно ничего в них не понимаю и после увиденного сочетания слов "...просто проверить элементы массива..." у меня взорвалась голова.

Хотелось бы использовать в своей миссии скрипты, как можно реже, но без проверки условий никак. Сам же я пробовал разобраться, но видимо не дано мне это.


  • 0

#76 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 posts
  • Откуда:Москва

Posted 17 September 2013 - 22:01

aVoidPanic, вот эта тема : клац тема массивы, часть номер раз


  • 0

#77 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 17 September 2013 - 22:04

aVoidPanic, вот эта тема : клац тема массивы, часть номер раз

Чувак, я прочитал, и ничего не понял  :crazy:

А так очень полезная статья, но не для моего ума.


Edited by aVoidPanic, 17 September 2013 - 22:08.

  • 0

#78 OFFLINE   Blender

Blender

    Прапорщик

  • Администраторы
  • 615 posts
  • Откуда:Torrevieja, España

Posted 18 September 2013 - 06:32

aVoidPanic: Например у тебя на карте стоит ящик с именем box1 Командой

_result = getMagazineCargo box1;

Мы получим результат выполнения команды в переменную _result. На примере ArmA 2: массив в переменной _result будет примерно таким:

[["30Rnd_556x45_Stanag","30Rnd_556x45_StanagSD","20Rnd_556x45_Stanag","100Rnd_762x51_M240","200Rnd_556x45_M249","30Rnd_9x19_MP5SD","30Rnd_9x19_MP5","M136","1Rnd_HE_M203","FlareWhite_M203","FlareGreen_M203","FlareRed_M203","FlareYellow_M203","5Rnd_762x51_M24","20Rnd_762x51_DMR","8Rnd_B_Beneli_74Slug","10Rnd_127x99_m107","15Rnd_9x19_M9","15Rnd_9x19_M9SD","7Rnd_45ACP_1911","HandGrenade_West","SmokeShellRed","SmokeShellGreen","SmokeShellYellow","SmokeShell","1Rnd_SmokeRed_M203","1Rnd_SmokeGreen_M203","1Rnd_SmokeYellow_M203","1Rnd_Smoke_M203"],[400,20,20,50,50,30,90,20,80,2,2,2,2,30,30,50,30,30,20,30,50,2,2,2,5,2,2,2,2]] Структура такова: [ [Боеприпас1, Боеприпас2 и т.д...], [Колво боеприпаса1, боеприпаса2 и т.д.] ] Т.е. чтобы узнать сколько там находится например дымовых гранат, у которых имя класса SmokeShell, то нам нужно проверить каждый элемент и найти этот класс, потом получить количество из второго подмассива:

_result = getMagazineCargo box1; // Получаем массив боеприпасов ящика_ammoArray = _result select 0; // Записываем названия классов из массива в переменную _ammoArray_amountArray = _result select 1; // Записываем массив количества боеприпасов в переменную _amountArray_amount = 0; // Количество по-умолчанию: 0, т.е. если гранаты там не будет, то в результате мы получим 0for "_i" from 0 to ((count _ammoArray ) - 1) do { // Перебираем элементы боеприпасов    _ammo = _ammoArray select _i;    if (_ammo == "SmokeShell") exitWith { // Если боеприпас равен SmokeShell, то выходим из цикла        _amount = (_amountArray select _i); // Записываем количество боеприпаса из массива в переменную _amount    };};

По окончании выполнения скрипта имеем в переменной _amount количество гранат.. а дальше уже работаем с этим количеством. Например вывести на экран в виде хинта можно добавив после скрипта строчку:

hint format["Количество: %1", _amount];

  • 1

#79 OFFLINE   aVoidPanic

aVoidPanic

    Ефрейтор

  • Пользователи
  • 47 posts
  • Откуда:Самара

Posted 18 September 2013 - 10:37

Blender, Вау... "разжевал и в рот засунул" спасибо большущее  ^_^

 

После второй строчки _ammoArray = _result select 0; выдало такую фигню - local variable in global space. Я попытался засунуть этот скрипт в триггер, в поле ON ACT.


Edited by aVoidPanic, 18 September 2013 - 11:09.

  • 0

#80 OFFLINE   D_Donskoy

D_Donskoy

    Старшина

  • Пользователи
  • 447 posts
  • Откуда:Россия

Posted 23 September 2013 - 16:21

Сегодня вышло новое обновление, там есть такая строчка - 

  • BLUFOR soldiers are now able to switch textures via setObjectTexture - объясните пожалуйста как этим пользоваться? :sad: И еще вопрос, может кто нибудь подсказать как создать свет от фар и прикрутить его допустим к статичному "Траулеру"? Если это вообще возможно!? :nea:

Edited by D_Donskoy, 23 September 2013 - 17:04.

  • 0




Яндекс.Метрика