|
|
|
Канал Freelancer »
МОДовый отсек: «Динамические астероиды» |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Когда летаешь в астероидном поле, то сразу видишь - есть маленькие астероиды, которые не фиксированы и свободно перемещаются, а также их можно взорвать. Сделать другие астероиды движущимися тоже просто - надо всего лишь сменить модельку динамического астероида.
Открываем первую попавшуюся инишку в SOLAR\ASTEROIDS. Находим раздел:
Code: |
[DynamicAsteroids]
asteroid = DAsteroid_mineable_small1
count = 12
placement_radius = 150.000000
placement_offset = 90.000000
max_velocity = 10.000000
max_angular_velocity = 3.000000
color_shift = 1.000000, 1.000000, 1.000000 |
Параметр asteroid ссылается на asteroidarch.ini в папке SOLAR. Открываем этот файл и находим указанный никнейм:
Code: |
[DynamicAsteroid]
nickname = DAsteroid_mineable_small1
DA_archetype = solar\asteroids\models\ast_mineable_dynamic.3db
material_library = solar\ast_mineable.mat
explosion_arch = dast_asteroid_explosion |
Теперь можете скопировать раздел или просто изменить модель для этого никнейма. Все модели астероидов лежат в папке SOLAR\ASTEROIDS\MODELS. У меня лично не получилось сделать чтобы использовалось несколько моделей динамических астероидов одновременно, надеюсь у кого получится.
Мы поставили астероид, но каким бы он большим не был, то все равно взрывается от одного выстрела и отпрыгивает как воздушный шарик. Эту проблему можно исправить.
Нужно скачать DLLку, разработанню пилотом Adoxa: http://redfed.clan.su/jeider/dynastex.dll
DLL скинуть в папку EXE фрилансера и в dacom.ini в разделе [Libraries] дописать его название.
Теперь вы можете в asteroidarch.ini к любому динамическому разделу подставить значения mass (масса) и hit_pts (броня). Теперь в зависимости от параметров изменится физика астероида при столкновении, а также для его взрыва требуется больше попаданий. Но есть маленькая проблемка: повреждения от столкновения с астероидом изменить нельзя. Даже если в constants.ini поставить завышенное значение COLLISION_DAMAGE_FACTOR, то повреждения не изменятся.
Кстати, для больших астероидов нужно еще изменить эффект взрыва. Вполне подходит эффект взрыва мины в минном поле.
В сумме всех изменений должно получится наподобие этого:
Code: |
[DynamicAsteroid]
nickname = mod_dlava_90
DA_archetype = solar\asteroids\models\ast_lava02_90.3db
material_library = solar\ast_lava.mat
explosion_arch = explosion_large_mine
particle_effect = gf_dynamiclavaast
mass = 5000
hit_pts = 10000 |
Теперь нужно избавится от основных астероидов. Открываем файл астероидного поля в SOLAR\ASTEROIDS и делаем изменения в самом первом разделе:
Code: |
[Field]
cube_size = 400
fill_dist = 1650
diffuse_color = 220, 220, 180
ambient_color = 120, 120, 120
ambient_increase = 70, 40, 30
empty_cube_frequency = 1.000000 <<<-ставим процент появления пустого куба на 100%, тогда не появится ни одного фиксированного астероида в поле! |
Заодно находим раздел динамических астероидов и увеличиваем их количество параметрами:
Code: |
[DynamicAsteroids]
asteroid = DAsteroid_mineable_small1
count = 12 << количество
placement_radius = 150.000000 << максимальный радиус появления
placement_offset = 90.000000 << минимальный радиус появления
max_velocity = 10.000000 << скорость
max_angular_velocity = 3.000000 << вращение по оси (как spin у планет)
color_shift = 1.000000, 1.000000, 1.000000 |
Last edited by Jeider on 14:45 13-06-2011; edited 5 times in total |
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
А что будет, если они все будут нефиксированными? Поле не улетит?
_________________ BRIGHT SLAP!!! |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Поле это всего лишь место генерации астероидов, т.е. оно стоит на месте и в зависимости от нахождения игрока в конкретном месте генерирует какие-либо астероиды вокруг него в зависимости от параметров.
Фрилансер не поддерживает динамическое изменение объектов в системе. Конечно, если они не являются миссионными.
|
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Обучалка. Создание динамических астероидов от взрыва динамических астероидов.
Открываем FX\explosions.ini.
Представим, у нас есть астероид как в Омеге-41 (planet_frag). Наша цель сделать взрыв астероида более убедительным. Для этого нам надо его "разрушить", но так как это мы не сможем сделать, то можно управлять вылетом астероидов из точки взрыва текущего.
За основу взят динамический астероид с размером 90. Также можно попробовать и с 60, но с 30 и 10 данный взрыв будет смотреться неубедительно.
Добавляем строчки в инишку explosions.ini:
Code: |
[explosion]<<взрыв
nickname = explosion_planet_asteroid <<уникальное произвольное имя
lifetime = 0.000000 <<время взрыва
process = none <<тип процесса
effect = explosion_large_mine <<прикрепленный эффект
debris_impulse = 200 <<скорость вылетаемых частей
debris_type = debris_3_minute_a, 0.330000 <<описание характеристик частица
debris_type = debris_3_minute_b, 0.330000
debris_type = debris_3_minute_c, 0.330000
innards_debris_start_time = 0.000000 <<время запуска
innards_debris_num = 30 <<число
innards_debris_radius = 30 <<радиус вылета (т.е. от 0 до 30)
innards_debris_object = simple_ast_frag_planet_1 <<ссылка на модель
innards_debris_object = simple_ast_frag_planet_2
[Simple] <<модель
nickname = simple_ast_frag_planet_1 <<уникальное произвольное имя
DA_archetype = solar\asteroids\models\ast_planet_frag_10.3db <<ссылка на файл модели
material_library = solar\ast_fragments.mat <<тексуры
Mass = 200 <<масса
[Simple]
nickname = simple_ast_frag_planet_2
DA_archetype = solar\asteroids\models\ast_planet_frag_30.3db
material_library = solar\ast_fragments.mat
Mass = 400 |
Подробнее о debris type:
Code: |
[Debris]
nickname = debris_3_minute_a <<имя
death_method = exploding <<метод уничтожения
lifetime = 180, 300 <<время существования
linear_drag = 0.500000 <<скорость по прямой
angular_drag = 0.100000, 0.100000, 0.100000 <<скорость по осям X Y Z
explosion = explosion_large_debris <<взрыв |
У меня не получилось подставить параметр hit_pts к появляющимся астероидам. Они оставались неубиваемыми, но это не делает их особенно ущербными. Одного лишь эффекта хватит с полна. Так, теперь надо указать наш взрыв в asteroidarch.ini. Нужно у нашего динамического астероидам изменить параметр explosion_arch:
Code: |
explosion_arch = explosion_planet_asteroid |
Вуаля. Когда вы взорвете астероид, то он разлетится на 30 маленьких астероидиков. Выглядит захватывающе.
Last edited by Jeider on 15:50 25-06-2011; edited 1 time in total |
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
И без лагов?
_________________ BRIGHT SLAP!!! |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
А сам посмотри.
http://www.youtube.com/watch?v=CrII3QnYzGA
|
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
Интересно было бы тоже самое с минами своротить
А, например, астеройды в Нью-Йорке, там где база разбойников?
Там камушки здоровые были.
Плюс, я бы уменьшил скорость и количество астеройдов, наверно...
Как поставлю фрил, пропишу и поэксперементирую.
_________________ BRIGHT SLAP!!!
Last edited by GameoverVergil on 19:55 25-06-2011; edited 1 time in total |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
В моем варианте сделан акцент на близость с черной дырой, а в других местах скорость можно сделать любую, хоть вообще убрать. Но тогда придется сделать акцент на массу астероидов.
В будущем я бы хотел сделать огромные динамические астероиды, не эти мелкие камушки. На место астероида можно поставить что угодно, хоть Валькирию . Фрил позволяет свободно манипулировать всеми характеристиками кроме направления полета.
Астероиды в НьюЙорке сделать проще простого - достаточно создать дополнительный тип астероида как динамический с моделькой этих астероидов.
Кстати, нашел метод создания разных астероидов в поле. Если в одном поле можно сделать только 1 динамический астероид, то можно тупо сделать 2 астероидных поля с разными модельками.
|
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
Можно сделать так, чтобы приодически появлялись свободные астеройды во всем секторе и периодически ударялись об станции и планеты.
_________________ BRIGHT SLAP!!! |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Это конечно было бы хорошо, но во фриле есть глюк, который делает в астероидном поле глюки с показанием эффекта солнца... В общем с этим надо разбираться.
А удары об станцию были бы нелогичны. Огромный астероид логически снесет любую маленькую базу во фриле - таковы у них размеры. Лучше сделать назначение, т.к. это интереснее. Система с крутыми астероидами, система с красивыми базами. Вместе не катит.
Last edited by Jeider on 20:17 25-06-2011; edited 1 time in total |
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
Для начала надо ресайз всех кораблей и станций сделать
А вот в диких секторах такой вариант возможен.
_________________ BRIGHT SLAP!!! |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Выбирай сам, воля твоя. У меня же принцип прост - фрил 1.0 фигня и надо делать все по своему.
|
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Заметил интересную вещь. Оказывается принцип создания астероидных полей во фриле такой:
Берутся кубики, в них заполняются астероиды из [Cube]. При том если в кубе 6 параметров, то 6 астероидов в каждом кубе. И кубы тупо повторяются, они тупо одинаковы. Как проверено? Просто. Я забыл отключить эффект прилипалы на корабле - стреляешь и можешь хазардбокс прилепить к астероиду или нпц или базе - так вот, я стрельнул в динамический астероид в одной части поля, а через 10 к встретил опять светящийся астероид... при том динамический. Че за фигня? Оказалось, тупо повторяются...
|
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
Полтергейст!
Можно сделать кладбище кораблей и корабль - призрак, который будет приследовать игрока
_________________ BRIGHT SLAP!!! |
|
|
goshadiamo
155 EGP
  Рейтинг канала: 3(38) : 14 Posts: 775 Location: Nemiroff Joined: 05 Apr 2010
 |
|
GameoverVergil wrote: |
корабль - призрак, который будет приследовать игрока
|
Чо курил? А сделать всегда можно что угодно.
|
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Шишь вам сделать все что угодно. Я пытался огромные астероиды впихать в поле. Те, которые у базы Тегаки висели. В итоге там такие глюки появились, что в страшном сне не привидится.
|
|
|
GameoverVergil
60 EGP
 : 1 Posts: 100 Location: Джабуро Joined: 23 Jan 2010
 |
|
А что за глюки?
_________________ BRIGHT SLAP!!! |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
А ты сделай сам и посмотри. 
Астероиды ужасно загрузили модельку у меня и совсем sur потеряли... я подумал... и забил. Слишком много их получалось.
Last edited by Jeider on 19:01 27-06-2011; edited 1 time in total |
|
|
lerYvel
805 EGP
      Рейтинг канала: 1(9) : 118 Posts: 2597
Joined: 29 Oct 2006
 |
|
Jeider wrote: |
lerYvel wrote: |
тогда еще вопрос: автопилот будет их облетать?
|
Не проверял... вроде не должен...
|
Это не айс.
Тогда астероиды должны быть достаточно маленькими и отлетать.
Если не будут отлетать, тогда они должны быть достаточно большими, чтобы их можно было вовремя заметить и облететь ... ну и такое поле можно назвать аномальным, т.к. автопилот не может в нем корректно работать
Вообще лучше потестить.
_________________ ツ |
|
|
Jeider
570 EGP
    Рейтинг канала: 5(198) : 49 Posts: 2805 Location: Пенза Joined: 17 Aug 2009
 |
|
Ставить очень маленькие астероиды в поле это бессмысленно и невозможно. Т.е. я могу технически впихать в одну зону единовременно только один тип динамического астероида. Несколько видов? Тогда надо делать 2 отдельных автономных зоны. Мелкие астероиды идеально подходят как детали разламывания астероида.
У астероидов есть параметры:
- расстояние от игрока до точки начала генерации;
- расстояние от игрока до точки окончания генерации.
Т.е. если астероиды довольно медленные, то не смогут попасть в игрока. Я на скорости 1000 (в моем моде) попадал только один раз за долгое время в астероид. При том астероиды были почти самые быстрые. Я не говорю про самые медленные. В общем принцип в том, что не только игрок облетает астероиды, но и астероиды отлетают в сторону от игрока.
добавлено спустя 57 секунд:
И хочу добавить - динамические астероиды не могут наносить повреждений по игроку! Даже если лететь в них на крейсере со скоростью 5000000, то повреждений не будет нанесено совсем. Повреждать могут только фиксированные астероиды из фрила 1.0.
Last edited by Jeider on 22:14 09-08-2011; edited 2 times in total |
|
|
|
|
|
Канал Freelancer ->
МОДовый отсек: «Динамические астероиды» |
|