Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Sign in to follow this  
ka3ant1p

получение значений из триггера в скрипте

скажите как из триггера получить значение в каком то скрипте?
Скажем есть триггер с параметрами а = 100; в = 200; ну и вызывается скрипт, как в этом скрипте получить значения а и в из триггера?

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

1) Заходим в редактор Армы (alt+e в главном меню, Чернорусь)
2) Ставим триггер в нужном месте. Сразу выставляем нужный радиус.

3) Сохраняем миссию, заходим в папку с сохранёнными миссиями (Документы\ArmA 2 Other Profiles\НикВашегоПерсонажа\missions)
4) Открываем нашу миссию (та, что mission.sqf) при помощи Notepad, находим примерно такие строки:

_this = createTrigger ["EmptyDetector", [11883.309, 5724.8052]];
_this setTriggerArea [35, 45, 57.1982, false];
_trigger_0 = _this;


 

[11883.309, 5724.8052] - это координаты

 

 Имейте ввиду, что в миссии и на сервере координаты прописываются по-разному, поэтому вам нужно будет переделать ваши координаты в самом начале пункта 5примерно так:

[11883.309,0,5724.8052]

То есть мы должны вставить "0" между двумя нашими значениями и убрать пробелы между запятой и вторым значением.

 

Источник: http://s-platoon.ru/index.php?/topic/7-admiskaiaprivatnaia-baza-zarazhyonnye-bazy/

Share this post


Link to post
Share on other sites



  • 0

 

1) Заходим в редактор Армы (alt+e в главном меню, Чернорусь)

2) Ставим триггер в нужном месте. Сразу выставляем нужный радиус.

3) Сохраняем миссию, заходим в папку с сохранёнными миссиями (Документы\ArmA 2 Other Profiles\НикВашегоПерсонажа\missions)

4) Открываем нашу миссию (та, что mission.sqf) при помощи Notepad, находим примерно такие строки:

_this = createTrigger ["EmptyDetector", [11883.309, 5724.8052]];

_this setTriggerArea [35, 45, 57.1982, false];

_trigger_0 = _this;

 

 

[11883.309, 5724.8052] - это координаты

 

 Имейте ввиду, что в миссии и на сервере координаты прописываются по-разному, поэтому вам нужно будет переделать ваши координаты в самом начале пункта 5примерно так:

[11883.309,0,5724.8052]

То есть мы должны вставить "0" между двумя нашими значениями и убрать пробелы между запятой и вторым значением.

 

Источник: http://s-platoon.ru/index.php?/topic/7-admiskaiaprivatnaia-baza-zarazhyonnye-bazy/

Твоё сообщение не имеет смысловой нагрузки поскольку ты не понял сути вопроса!

Share this post


Link to post
Share on other sites
  • 0

а если я вставлю перечень необходимых передаваемых параметров в  [] execVM будет работать?
К примеру так [a,b] execVM
 

Share this post


Link to post
Share on other sites
  • 0

Глобальные переменные будут видны.

ну я подолбался и у меня получилось но не совсем так как хотел =(

Хотел так:

 

class Item13
  {
   position[]={4381.3115,85.481133,8115.8174};
   a=10;
   b=10;
   activationBy="ANY";
   age="UNKNOWN";
   expCond="true";
   value1=10;
   value2=20;
   expActiv="some_script=[position,value1,value2]execvm ""Script.sqf""";
  };

А получилось только так:

 

class Item13
  {
   position[]={4381.3115,85.481133,8115.8174};
   a=10;
   b=10;
   activationBy="ANY";
   age="UNKNOWN";
   expCond="true";
   expActiv="value1=10; value2=20; some_script=[value1,value2]execvm ""Script.sqf""";
  };

при чем position вообще передавать не хочет скрипт чекер ошибку выдвает

 

Как то можно вариант 1 адаптировать что бы он работал?

в триггерах вообще возможно использование локальных переменных?

Share this post


Link to post
Share on other sites
  • 0

А нафига value1, value2?

Вместо них цифры поставь свои.

 

expActiv="[10,20] execVM ""Script.sqf""";

Share this post


Link to post
Share on other sites
  • 0

А нафига value1, value2?

Вместо них цифры поставь свои.

 

expActiv="[10,20] execVM ""Script.sqf""";

 

ну типо для удобства, так как так триггеров под сотню будет, и потом по поиску можно будет заменить все значений value1 например

Share this post


Link to post
Share on other sites
  • 0

1. Можешь перечислить их в init.sqf

2. Можешь создать файл initialize.sqf

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

variable1 = 10;

variable2 = 20;

.........

 

Вызывать скрипт из триггера без переменных вообще.

[] execVM ""Script.sqf""";

 

А уже в скрипте забирать их -

_var1 = variable1;

_var2 = variable2;

.......

Share this post


Link to post
Share on other sites
  • 0

1. Можешь перечислить их в init.sqf

2. Можешь создать файл initialize.sqf

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

variable1 = 10;

variable2 = 20;

.........

 

Вызывать скрипт из триггера без переменных вообще.

[] execVM ""Script.sqf""";

 

А уже в скрипте забирать их -

_var1 = variable1;

_var2 = variable2;

.......

 

они будут не во всех триггерах одинаковые, то есть там передается 5 значений, среди которых и радиус, и я не могу все эти параметры обобщить

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

 

Share this post


Link to post
Share on other sites
  • 0

Итак у тебя 5 переменных.

Предположим

A,B,C,D,E

 

Одно может менятся(да хоть все впринципе, но тогда переделай, то что ниже под 2 передаваемых массива, а не 2 переменных).

 

Значит, добавь в триггер номер значения которого меняешь, и значения НА что меняешь -

 

 

[2,10] execVM ""Script.sqf""";
 

 

 

Первая цифра - что меняем, вторая - значение.

 

А в самом скрипте, вверху -

 

_var = _this select 0;//Получили переменную которой надо поменять значение на значение из триггера.
_val = _this select 1;//А это само значение переменной - на что ее надо менять.
switch (_var) do
{
 case 1: {A = _val};
 case 2: {B = _val};
 case 3: {C = _val};
 case 4: {D = _val};
 case 5: {E = _val};
};
 

Share this post


Link to post
Share on other sites
  • 0

И еще -

Вот ты пишешь, что будет много триггеров, и хочешь для них использовать глобальные переменные.

И тут же пишешь, что они будут в зависимости от триггера меняться.

 

А что будет, если к примеру -

Работает триггер А. И он был запущен с переменной varible1 равной 10.

И тут ты запускаешь триггер Б, который под себя изменил variable1 на 20.

Что будет с триггером А? Ведь переменная глобальная и там и там(в А и в Б), она будет уже 20. Но триггеру А то ведь нужна как 10.

)))

Share this post


Link to post
Share on other sites
  • 0

И еще -

Вот ты пишешь, что будет много триггеров, и хочешь для них использовать глобальные переменные.

И тут же пишешь, что они будут в зависимости от триггера меняться.

 

А что будет, если к примеру -

Работает триггер А. И он был запущен с переменной varible1 равной 10.

И тут ты запускаешь триггер Б, который под себя изменил variable1 на 20.

Что будет с триггером А? Ведь переменная глобальная и там и там(в А и в Б), она будет уже 20. Но триггеру А то ведь нужна как 10.

)))

ну вот к примеру в триггеррах значения а и в которые используются для размера триггера могут же быть разные. 

Ну я понял буду использовать так как сейчас работает =)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.