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


Фотография

Аддон на взрыв ядерной бомбы


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

#1 OFFLINE   ruPal

ruPal

    Мл. лейтенант

  • HMG-RO
  • 914 сообщений

Отправлено 29 May 2015 - 15:36

Приветствую. Ранее Интернете был доступен данный мод

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

Увы, кажется, автор разочаровался и удалил все ссылки на него. Найти не удалось. Возможно у кого-то он сохранился, прошу дать ссылку.

Также интересуют другие аддоны схожей тематики.

 

P. S. Есть несколько скриптов от данного автора, с трудом найденные в интернете. Кто-нибудь может дать оценку возможности запаковать их в аддон?


Сообщение отредактировал ruPal: 29 May 2015 - 15:38

  • 0

#2 OFFLINE   ruPal

ruPal

    Мл. лейтенант

  • HMG-RO
  • 914 сообщений

Отправлено 30 May 2015 - 19:41

Эх, жаль, буду дорабатывать самостоятельно. Подскажите новичку:

foreach nearestobjects [[_xpos, _ypos, 0],["Allunits","Allvehicles"], _dis];

эквивалентно

foreach ([_xpos, _ypos, 0] nearobjects ["All", _dis]);

или нет?


Сообщение отредактировал ruPal: 30 May 2015 - 19:41

  • 0

#3 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 00:58

foreach (nearestObjects [_position, [], _radius])

Вернёт абсолютно всё что есть на карте в заданном радиусе.

Самый первый элемент в возвращённом массиве будет самым ближним, и далее по нарастающей.

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


  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 01:10

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

Когда массив объектов будет готов, взрыв, и исполнить код дамажа объектам из массива.


Далее_2

 

Дамажить можно гламурно, например с некой не большой задержкой в цикле, чем можно создать эффект ударной волны.


Далее_3

Что бы получить эффектную ударную волну, желательно полученный массив объектов, разбить на несколько массивов, каждый из которых будет выражать некую дистанцию от эпицентра. Чем больше будет радиусов, тем эффектнее будет смотреться волна разрушения.


Сообщение отредактировал SteelRat: 01 June 2015 - 01:04

  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 01:18

И да, самое главное далее_4

 

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


  • 0

#6 OFFLINE   ruPal

ruPal

    Мл. лейтенант

  • HMG-RO
  • 914 сообщений

Отправлено 01 June 2015 - 06:54

Пока имеет вот что:

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

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

 

Скрипт, который отвечает за разрушения:
 

_xpos = _this select 0;
_ypos = _this select 1;

for [{_dis = 300}, {_dis <= strahlungs_radius}, {_dis = _dis + 100}] do
{
  //[_xpos, _ypos, _dis] exec "nuke\scripts\script\wave.sqs";
  if ( schaden_an ) then
  {
    if ( _dis < 800 ) then {[_xpos, _ypos, _dis] execvm "nuke\scripts\script\noise.sqf"};
  };
  {
    if ( ! (_x iskindof "Land_nav_pier_m_2") ) then
    {
      if ( _x iskindof "Static" ) then {_damage = 0.15 + random 0.1} else
      {
        if ( _x iskindof "Man" || _x iskindof "Air" ) then {_damage = 0.1 + random 0.06}
        else
        {
          {_x setdammage ((getdammage _x) + 0.07)} foreach (crew _x);
          _damage = 0.06 + random 0.04;
        };
      };
      _x setdammage ((getdammage _x) + _damage);
    };
  } foreach ([_xpos, _ypos, 0] nearobjects ["All", _dis]);
};

Проблема в том, что он также удаляет и белые круги над взрывом. Если

"All"

заменить на

"All" - cl_basic.p3d

то проблема исчезает, но и зданиям перестает наносится урон.

 

Скрипт на круги:

_posx = _this select 0
_posy = _this select 1

_next = 0
_dis = 300
_height = 900
_con = 3
#start
_cnt = 0
_agl = random 360
_con = _con + 2
#loop
?(_cnt > 89) : _dis = _dis + 20; _height = _height - 3; _next = _next + 1; goto "start"
?(_next == 12):exit

_coef = 0.98 + random 0.04
_velx = (sin _agl) * 30.0 * _coef
_vely = (cos _agl) * 30.0 * _coef
_velz = 0.5
drop [["\A3\data_f\cl_basic.p3d", 1, 0, 1],"","Billboard",1,_con + random 1,[_posx + _dis * (sin _agl),_posy + _dis * (cos _agl), _height],[_velx,_vely,_velz],1,1.275,1.0,0.01,[70,110],[[1.0,1.0,1.0,0.0],[1.0,1.0,1.0,0.3],[1.0,1.0,1.0,0.4],[1.0,1.0,1.0,0.2],[1.0,1.0,1.0,0.1],[1.0,1.0,1.0,0.05],[1.0,1.0,1.0,0.0]],[0],0.0,2.0,"","",""]

_agl = _agl + 4
_cnt = _cnt + 1
goto "loop"

Сообщение отредактировал ruPal: 01 June 2015 - 08:39

  • 0

#7 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 01 June 2015 - 11:43

 

 

([_xpos, _ypos, 0] nearobjects ["All", _dis])

перебери этот массив создав новый исключив из него нужные тебе обьекты. (или обнулить и вычесть его, но все равно перебирать)

_array=[];
{
 if (_x!=обьект который не нужен) then
 {
   _array pushBack _x;
 };
}foreach ([_xpos, _ypos, 0] nearobjects ["All", _dis]);

и потом подменив на свой массив

_xpos = _this select 0;
_ypos = _this select 1;

for [{_dis = 300}, {_dis <= strahlungs_radius}, {_dis = _dis + 100}] do
{
  //[_xpos, _ypos, _dis] exec "nuke\scripts\script\wave.sqs";
  if ( schaden_an ) then
  {
    if ( _dis < 800 ) then {[_xpos, _ypos, _dis] execvm "nuke\scripts\script\noise.sqf"};
  };
  {
    if ( ! (_x iskindof "Land_nav_pier_m_2") ) then
    {
      if ( _x iskindof "Static" ) then {_damage = 0.15 + random 0.1} else
      {
        if ( _x iskindof "Man" || _x iskindof "Air" ) then {_damage = 0.1 + random 0.06}
        else
        {
          {_x setdammage ((getdammage _x) + 0.07)} foreach (crew _x);
          _damage = 0.06 + random 0.04;
        };
      };
      _x setdammage ((getdammage _x) + _damage);
    };
  } foreach _array;
};

Сообщение отредактировал Dimon UA: 01 June 2015 - 11:54

  • 0

#8 OFFLINE   ruPal

ruPal

    Мл. лейтенант

  • HMG-RO
  • 914 сообщений

Отправлено 01 June 2015 - 13:33

Dimon UA, понимаю, что нужно убрать их из списка, но проблема в том, что я никак не могу разобраться какой именно объект нужно убрать. Скрипт спавнит частицы, насколько я понимаю. Класснейма не смог найти.

Методом проб и ошибок выяснил, что проблема исчезает, если убрать фильтр "Building".


Сообщение отредактировал ruPal: 01 June 2015 - 13:34

  • 0

#9 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 01 June 2015 - 13:58

Dimon UA, понимаю, что нужно убрать их из списка, но проблема в том, что я никак не могу разобраться какой именно объект нужно убрать. Скрипт спавнит частицы, насколько я понимаю. Класснейма не смог найти.

Методом проб и ошибок выяснил, что проблема исчезает, если убрать фильтр "Building".

сделай 

copyToClipboard str ([_xpos, _ypos, 0] nearobjects ["All", _dis]); 

и ты увидишь, что массив то же не набор класснеймов... найди свой и убери его одним из способов выше или вот как написано ниже:

_array=[];
{
 if (str _x find "cl_basic" == -1) then {
 {
   _array pushBack _x;
 };
}foreach ([_xpos, _ypos, 0] nearobjects ["All", _dis]);

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

 

Следственно, тебе надо отсканировать все предметы, занести в массив и зафиксировать до того как появятся круги и потом разрушать именно этот массив,а не новый, таким образом круги никак не попадут под дамаг:

_arrays=[];
_arrays=_arrays + ([_xpos, _ypos, 0] nearobjects ["All", _dis]);

Сообщение отредактировал Dimon UA: 01 June 2015 - 14:07

  • 0

#10 OFFLINE   ruPal

ruPal

    Мл. лейтенант

  • HMG-RO
  • 914 сообщений

Отправлено 01 June 2015 - 19:05

Dimon UA, cпасибо, буду разбираться и пробовать.


  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 22:18

Я выше уже обращал внимание что массив нужно подготовить перед взрывом, тогда сам эффект не будет удалён.


  • 0

#12 OFFLINE   evgen1086

evgen1086

    Ефрейтор

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

Отправлено 31 March 2017 - 14:57

есть готовый аддон взрыва ядерной боеголовки Точки-У ?

А то после пуска ракеты, выдает ошибку что не хватает файла "ядерного взрыва".


  • 0




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