Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
USide

Запуск скрипта через триггер.

Подскажите пожалуйста,как можно запустить скрипт такого формата:

// УНИЧТОЖЕНИЕ ЦЕЛИ ПО ЛАЗЕРНОМУ НАВЕДЕНИЮ.
//////////////////////////////////////////
//автор: Ванька Still
/////////////////////
// вызов скрипта:        _L_targ = [270,10] execVM "Laser_target.sqf";
// порядок аргументов:    [азимут, время_захвата_цели]
// АЗИМУТ - с какой стороны летит ракета
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

_dir = _this select 0;
_timer = _this select 1;
 
// проверка включения лазера
while {isNull laserTarget player} do {hint "Включите лазер!";sleep 1};

// ожидание наведения функция
_navedenie = {
_all_target = nearestObjects [laserTarget player, ["Tank","Car","Truck","Air","Ship"], 5];
_targetx = _all_target select 0;
    if (isNull laserTarget player) then {_i = 0; hint "Нет маркера..."}
        else {
        if (count _all_target == 0) then {_i = 0;hint "Нет цели..."}
            else {
                if (!canMove _targetx) then {hint "Обездвижена..."} 
                    else {
                        _name_targ = getText (configFile >> "cfgVehicles" >>TypeOf _targetx >> "displayName");
                        hint format ["Наведение: %1 %2\n------------------------\nЦель:\n%3",_i,"%",_name_targ];
                    }
                }
            }
};

// вычисление траектории функция
_fnc = {
    _obj_Pos = [(getPosASL _obj) select 0,(getPosASL _obj) select 1,((getPosASL _obj) select 2)];
    _bomb_Pos = [(getPosASL _bomb) select 0,(getPosASL _bomb) select 1,((getPosASL _bomb) select 2)];
    _x_vector = [_bomb_Pos,_obj_Pos] call BIS_fnc_vectorFromXToY;    
    _y_vector = (asin ((((_bomb_Pos) select 2) - (_obj_Pos select 2)) / (_obj distance _bomb))) * -1;
    _bomb setVectorDir _x_vector;
    [_bomb,_y_vector,0] call BIS_fnc_setPitchBank;
};

// таймер наведения
_t_naved = _timer / 100;
for "_i" from 0 to 100 do {
    call _navedenie;
    sleep _t_naved;
};
_obj = laserTarget player;
[]spawn {hint "Маркер захвачен";sleep 2; hint "";if (true) exitWith {}};

// создание ракеты
_xyz = _obj getPos [600,_dir];
_xx = _xyz select 0;
_yy = _xyz select 1;
_zz = 450;
_bomb = createVehicle ["M_Scalpel_AT",[_xx,_yy,_zz],[],0,"NONE"];

// полет ракеты
while {alive _bomb} do {
if (isNull laserTarget player) exitWith {hint "Маркер потерян..."};
call _fnc;
sleep 0.2;
};

true

Через данный вызов  _L_targ = [270,10] execVM "Laser_target.sqf";

 

При активации ЛЦУ в целеуказателе?Где можно найти пример такого триггера?Или как еще можно вызвать данный скрипт?Желательно чтобы он был не одноразовым.
Понимаю что вопрос мб тупой и обсуждалось уже,но увы пока не нашел ответ для себя...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Laser_target.sqf - это и есть файл в котором хранится код и в данном случае, он может быть вызван только так [270,10] execVM "Laser_target.sqf"; (270 и 10 входные аргументы). Вызов данной функции и при каких обстоятельствах будет он вызываться зависит от задумки автора и как он это себе представлял.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.