Перейти к содержимому


Фотография

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

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

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 1486

#221 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 сообщений

Отправлено 04 August 2015 - 19:24


Я почитал и пришел к выводу что код _peremennaya = nil удаляет переменную! Прошу подтвердить мою догадку.

 

Да, данный код освобождает переменную. Можно убедиться с помощью следующего кода:

 if (isNil "_peremennaya ") then {player globalchat " variable _peremennaya  doesn't exist"}

  • 1

#222 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 05 August 2015 - 21:29

Как удалить переменную во время проигрывания скрипта. Присваиваю значение переменной _peremennaya = true или false, после того как переменная была использована в скриптах ее нужно удалить. Я почитал и пришел к выводу что код _peremennaya = nil удаляет переменную! Прошу подтвердить мою догадку.

А смысл!? После завершения исполнения скрипта, эта переменная исчезнет сама по себе, ибо это приватная переменная, время её жизни измеряется временем исполнения скрипта.


  • 2

#223 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 06 August 2015 - 15:40

Стоит транспорт или ящик с боеприпасами. Как подорвать объект при активации триггера? Допустим триггер активируется присутствием красных, какую команду написать в активации триггера чтоб нужный мне объект взорвался? Если конечно есть такая команда. Думал что можно это сделать с помощью модуля, но видимо нет. Поиск по форуму не дал результатов.


  • 0

#224 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 сообщений

Отправлено 06 August 2015 - 16:44

susamin, самый простой способ без писанины и с работой внешних скриптов это: добавить танк с заданным именем Tank1, прописать ему в инициализацию This HideObject true и перетаскиваем его ближе к коробкам с боеприпасами. Затем установить триггер, который будет активироваться на присутствие любого заданного юнита. В триггере пишем при его активации Tank1 setDamage 1;

 

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

 

 

...................

 

Файл миссии:

Прикрепленный файл  BoxBoom.VR.rar   1.01К   2 Количество загрузок:


Сообщение отредактировал HarryWorner: 06 August 2015 - 16:52

  • 1

#225 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 14 August 2015 - 22:05

Товарищи имеем код

 

this addAction ["Arsenal", {["Open",true] spawn BIS_fnc_Arsenal}]; 

 

вставляем этот код в любой предмет получаем вирт. арсенал, как сделать чтоб в арсенале было только НАТОвское оружие? Функцию BIS_fnc_Arsenal на форуме БИС смотрел, по-моему ничего про ограничение видов оружия.


  • 0

#226 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 14 August 2015 - 22:35

susamin,

_data = missionnamespace getvariable "bis_fnc_arsenal_data"
что представляет из себя: массив массивов, где 1 массив = оружие (1-ая кнопочка выбора (Слева в арсенале)), 2 массив = РПГ (2-ая кнопочка) и т д
PS Это пока что единственный способ который я нашел для редактирования списка арсенала

Сообщение отредактировал vlad333000: 14 August 2015 - 22:39

  • 2

#227 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 14 August 2015 - 23:05

Спасибо, ничего не понял!


  • 0

#228 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 сообщений

Отправлено 14 August 2015 - 23:13

susamin, присваиваешь этой переменной массив с нужными названиями классов, а потом запускаешь арсенал.
  • 1

#229 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 14 August 2015 - 23:28

Еще смешной вопрос но не могу найти ответ. В редакторе делаю вертолет в полете, как в него посадить группу пехоты, чтоб он появился с пехотой на борту, соответственно группа не связана с группой пилотов вертолета. Точнее какую команду прописать в ините бойцов пехоты? Не могу найти хоть убейся где-то видел.

 

где тут массив чет не могу понять? _data = missionnamespace getvariable "bis_fnc_arsenal_data" 


Сообщение отредактировал susamin: 14 August 2015 - 23:32

  • 0

#230 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 сообщений

Отправлено 14 August 2015 - 23:37

Еще смешной вопрос но не могу найти ответ. В редакторе делаю вертолет в полете, как в него посадить группу пехоты, чтоб он появился с пехотой на борту, соответственно группа не связана с группой пилотов вертолета. Точнее какую команду прописать в ините бойцов пехоты? Не могу найти хоть убейся где-то видел.

Вставьте этот код в поле инициализации лидера группы:
{_x moveInCargo helicopter} forEach (units (group this));

где тут массив чет не могу понять? _data = missionnamespace getvariable "bis_fnc_arsenal_data"

Переменной _data присвоется массив, хранящийся в bis_fnc_arsenal_data. Если вывести _data, то можно посмотреть на структуру массива. Далее, в соответствии с этой структурой, присваиваем свой массив переменной bis_fnc_arsenal_data и запускаем арсенал.

Сообщение отредактировал Schatten: 15 August 2015 - 14:02

  • 1

#231 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 25 August 2015 - 12:28

Добрый день, Schatten,vlad333000, товарищи насколько я вас понял все будет выглядеть так 

_data = [[оружие1, оружие2],[тяжелое вооруж1, тяж воор2],[...]];  добовлять в конце строчки это call bis_fnc_arsenal

_data = missionnamespace getvariable "bis_fnc_arsenal_data";

 

ЗЫ: Еще вопросик вижу на форуме выкладывают код разноцветный, для облегчения читабельности кода, хотелось бы разобраться в цветовых схемах. Где почитать какой цвет за что отвечает или это копируется из Вордпеда с каким-то дополнением, аддоном, плагином?


Сообщение отредактировал susamin: 25 August 2015 - 12:38

  • 0

#232 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 сообщений

Отправлено 25 August 2015 - 12:51

Добрый день, Schatten,vlad333000, товарищи насколько я вас понял все будет выглядеть так 
_data = [[оружие1, оружие2],[тяжелое вооруж1, тяж воор2],[...]] call bis_fnc_arsenal;
_data = missionnamespace getvariable "bis_fnc_arsenal_data";

bis_fnc_arsenal_data = [[оружие1, оружие2],[тяжелое вооруж1, тяж воор2],[...]];

["Open", true] spawn BIS_fnc_arsenal;

Т. е. сначала присваиваем переменной bis_fnc_arsenal_data нужные названия классов оружия, а потом запускаем арсенал.
 

Еще вопросик вижу на форуме выкладывают код разноцветный, для облегчения читабельности кода, хотелось бы разобраться в цветовых схемах. Где почитать какой цвет за что отвечает или это копируется из Вордпеда с каким-то дополнением, аддоном, плагином?

На форуме код вставляется в соответствующий блок (вызывается нажатием на кнопку "<>"). После этого ключевые слова будут выделены цветом, задуманными разработчиками форума. Возможно, это стандартная цветовая схема, но я не знаю об этом.


Сообщение отредактировал Schatten: 25 August 2015 - 12:53

  • 1

#233 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 25 August 2015 - 13:26

Спасибо большое, попробую применить на практике!

 

Нашел тут еще много инфы по работе с Virtual Arsenal

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

 написано все понятным буржуйским языком (яндекс переводчик помог)

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

BIS_fnc_addVirtualWeaponCargo добавляет рюкзак в арсенал

BIS_fnc_getVirtualWeaponCargo ???

Я правильно понимаю что можно добавить в арсенал 5 вещей, а разрешить брать только 2, а потом еще 3 например при наступлении каких-то условий?


  • 0

#234 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 сообщений

Отправлено 25 August 2015 - 13:48

не могу понять, чем отличается команда допустим 
BIS_fnc_addVirtualWeaponCargo добавляет рюкзак в арсенал
BIS_fnc_getVirtualWeaponCargo ???

С помощью BIS_fnc_addVirtualWeaponCargo "добавляется" (виртуально) оружие (например, в ящик), которое потом можно выбрать с помощью арсенала.

С помощью BIS_fnc_getVirtualWeaponCargo получают список оружия, "добавленного" ранее. Этот список можно изменить и снова "добавить". Этим и достигается ограничение доступного оружия.


  • 1

#235 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 25 August 2015 - 22:45

товарищи что не так сделано? Взял коробку в инит записал 

0 = ["AmmoboxInit",[this,true]] spawn BIS_fnc_arsenal;

все работает. Потом сделал так 

0 = ["AmmoboxInit",[this,(true, ((player distance this) < 30))]] spawn BIS_fnc_arsenal;

или так 

0 = ["AmmoboxInit",[this,(true, ((player distance box1) < 30))]] spawn BIS_fnc_arsenal;

предварительно обозвав коробку box1 не работает, при сохранении пишет что "потеряна )"


  • 0

#236 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 25 August 2015 - 22:48

susamin, перед true убери (

Сообщение отредактировал vlad333000: 25 August 2015 - 22:48

  • 1

#237 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 25 August 2015 - 22:55

Спасибо, интересно зачем бисы скобок понаставили в своих примерах. Сохранения приняты, но Арсенал в быстром меню все равно появляется ток на растоянии 3 метра а не 30 ((player distance box1) < 30) не работает и так тоже ((player distance box1) <= 30)


Сообщение отредактировал susamin: 25 August 2015 - 22:55

  • 0

#238 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 25 August 2015 - 22:58

И потом:
Passed arguments are the same as in addAction condition, i.e., _target - the box, _this - caller
Ну и на последок условие пишется в фигурных скобках
susamin, Так они выделяют необязательные аргументы
  • 1

#239 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 25 August 2015 - 23:07

vlad333000, чес слово с этим понятно

 



Passed arguments are the same as in addAction condition, i.e., _target - the box, _this - caller

 

 а с этим чет не въеду не получается, 

 



Ну и на последок условие пишется в фигурных скобках

Товарищи простите меня, я бухгалтер и полез в программирование, мой мозг просто взрывается ))) Но, блин, интересно!!! :sorry:


Сообщение отредактировал susamin: 25 August 2015 - 23:09

  • 0

#240 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1831 сообщений

Отправлено 25 August 2015 - 23:19

 

Passed arguments are the same as in addAction condition, i.e., _target - the box, _this - caller

 
 а с этим чет не въеду не получается,

 

Это значит, что в условии переменная _target будет указывать на ящик, которому добавлено действие, а _this - на персонажа, который смотрит на этот ящик. Пример условия:

(_target distance _this) < 5

Если бы этих переменных не было, пришлось бы вводить глобальную переменную для ящика (например, box), а для игрока пользоваться специальной переменной player. Условие тогда выглядело бы так:

(box distance player) < 5

  • 0




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