Покой – это ложь; есть только страсть.
Через страсть я познаю силу.
Через силу я познаю власть.
Через власть я познаю победу.
Через победу мои оковы рвутся.
Кодекс ситов
Дрю Карпишин, Трилогия Дарта Бэйна





Сколько глобус ни крути, там Fess-Style не найти...
Сайт Fess'a » Миномет - Форум
[ Новые сообщения · Участники · Правила форума · Поиск ]
Страница 1 из 11
Форум » Форум Редакторов » Редактор ARMA » Миномет
Миномет
alexandroДата: Понедельник, 09.12.2013, 03:15 | Сообщение # 1

Авы нет

Группа: Удаленные





Как заставить один или несколько минометов обстрелять определенную точку на карте, заранее задав кол-во выстрелов? (По активации триггера) Заранее спасибо=)

Сообщение отредактировал alexandro - Понедельник, 09.12.2013, 03:25
 
FessДата: Понедельник, 09.12.2013, 17:20 | Сообщение # 2

Добрый админ
Сообщений: 2338
Статус:
Уважаемый alexandro, а я разве ещё не выкладывал тут? Ну, мог бы и сам кстати написать уже)

Код
FESS_fnc_Bomber = {
    /* ARMA 3 function FESS_fnc_Bomber
       
    Description:
     causes a mines to fall in the area of ~100-150 meters
    Parameters:
    _this select 0 : center , format [x,y,z]
    _this select 1 : rounds count
    _this select 2 : debug true\false
    */
       
       private["_this","_pos","_mine","_x","_y","_radius","_i","_counter","_debug"];
       _pos = _this select 0;
    _counter = if(count _this > 1) then {_this select 1} else {5};
    _debug = if(count _this > 2) then {_this select 2} else {false};
       
    //Validate parameters
    if (((typeName _pos) != (typeName [])) or ((typeName _counter) != (typeName 2)) or ((typeName _debug) != (typeName false))) exitWith {["FESS_fnc_Bomber ERROR: Try [[x,y,z], RoundsCount,DebugMode?] spawn FESS_fnc_Bomber"] call BIS_fnc_error;};
       
    for "_i" from 1 to _counter do    
    {
     _radius = 50 + random 50;
     _x = _radius - random(_radius*2);    
     _y = _radius - random(_radius*2);    
         
     _mine = "Sh_82mm_AMOS" createVehicle [(_pos select 0) + _x, (_pos select 1) + _y, 300];     
     _mine setVelocity [0,0,-200];
        
     if(_debug) then {
      private["_mark"];
      _mark = createMarker [format ["%1",random 10000], [(_pos select 0) + _x, (_pos select 1) + _y]];
      _mark setMarkerType "hd_destroy";
     };
     sleep 6; // по статистике средняя перезарядка миномета занимает ~6 секунд
    };    
};

В дебаг моде на карте ставит крестики в местах взрывов.
 
alexandroДата: Понедельник, 09.12.2013, 17:57 | Сообщение # 3

Авы нет

Группа: Удаленные





Уважаемый Fess, я  не понял как вызвать, и куда прилетят мины(? Как задать цель? И это ведь скрипт на просто создание снарядов!? И еще, я пробовал просто заспавнить мину Sh_82mm_AMOS но в отличии от авиабомбы ничего не получилось, в чем проблема ?

Сообщение отредактировал alexandro - Понедельник, 09.12.2013, 19:32
 
FessДата: Понедельник, 09.12.2013, 22:45 | Сообщение # 4

Добрый админ
Сообщений: 2338
Статус:
Уважаемый alexandro, обрати внимание на дескрипшн:

Цитата Fess ()
   /* ARMA 3 function FESS_fnc_Bomber
       
    Description:
     causes a mines to fall in the area of ~100-150 meters
    Parameters:
    _this select 0 : center , format [x,y,z]
    _this select 1 : rounds count
    _this select 2 : debug true\false
    */


[getPos player, 10, true] spawn FESS_fnc_Bomber; // призовет 10 снарядов по тебе, все снаряды отметит на карте крестиками

Цитата alexandro ()
И еще, я пробовал просто заспавнить мину Sh_82mm_AMOS но в отличии от авиабомбы ничего не получилось

В ArmA у мин хитрый механизм. Они существуют только пока они летят с определенной скоростью, а если их скорость падает до нуля - снаряд просто беззвучно исчезает. Поэтому нужно создавать мину в воздухе и затем разгонять её к земле.
 
alexandroДата: Вторник, 10.12.2013, 05:05 | Сообщение # 5

Авы нет

Группа: Удаленные





Уважаемый Fess, скрипт просто великолепный!!! happy !! ОГРОМНОЕ ТЕБЕ СПАСИБО!!! yes 
Цитата
В ArmA у мин хитрый механизм. Они существуют только пока они летят с определенной скоростью, а если их скорость падает до нуля - снаряд просто беззвучно исчезает. Поэтому нужно создавать мину в воздухе и затем разгонять её к земле.
 Расскажи пожалуйста как это сделать?


Сообщение отредактировал alexandro - Вторник, 10.12.2013, 06:32
 
FessДата: Среда, 11.12.2013, 13:25 | Сообщение # 6

Добрый админ
Сообщений: 2338
Статус:
Цитата alexandro ()
Расскажи пожалуйста как это сделать?

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

Цитата
_mine = "Sh_82mm_AMOS" createVehicle [(_pos select 0) + _x, (_pos select 1) + _y, 300];
_mine setVelocity [0,0,-200];

В первой создается сама мина, а вторая команда придает ей скорость 200 м\с по направлению вниз.
 
Форум » Форум Редакторов » Редактор ARMA » Миномет
Страница 1 из 11
Поиск: