ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.11.2019
Просмотров: 2756
Скачиваний: 36
Страница 41
local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine"))
if dist < 20 then
local h = hit()
h.impulse = 0
h.draftsman = db.actor
h.direction = vector():set(0,0,0)
h:bone("bip01_spine")
h.power = 1/dist
h.type = hit.strike
db.actor:hit(h)
h.power = 15/dist
h.type = hit.shock
db.actor:hit(h)
end
self.charge_time=time_global()
end
Измени это так.
amk.on_monster_hit(obj, amount, local_direction, who, bone_index)
if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then
local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine"))
if dist < 20 then
local h = hit()
h.impulse = 0
h.draftsman = db.actor
h.direction = vector():set(0,0,0)
h:bone("bip01_spine")
h.power = 0/dist
h.type = hit.strike
db.actor:hit(h)
h.power = 0/dist
h.type = hit.shock
db.actor:hit(h)
end
self.charge_time=time_global()
end
Как ослабить электрохимеру.
Код
if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then
local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine"))
if dist < 20 then
local h = hit()
h.impulse = 0
h.draftsman = db.actor
h.direction = vector():set(0,0,0)
h:bone("bip01_spine")
amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin
e"),sound="anomaly\\electra_blast1"})
amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin
e"),sound="anomaly\\electra_blast1"})
Файл
gamedata/scripts/bind_monster.script
, кусок кода:
amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spin
e"),sound="anomaly\\electra_blast1"})
Страница 42
h.power = 1/dist
h.type = hit.strike
db.actor:hit(h)
h.power = 15/dist
h.type = hit.shock
db.actor:hit(h)
end
self.charge_time=time_global()
end
Если я правильно впиливаю, то значения отвечают за.
time_global()>(self.charge_time or 0)+3000 - электрошок заряжается три секунды.
if dist < 20 then - дальность действия разряда 20 метров.
Настройка погоды и освещения
Материал из Mod Wiki.
* 1 Значение параметров погодных и относящихся к ним конфигов
o 1.1 Параметры погоды
o 1.2 Параметры бликов
o 1.3 Параметры фонарика
* 2 Авторы
Значение параметров погодных и относящихся к ним конфигов
Параметры погоды
[sect_default_weather]
01:00:00 = default_weather_01
02:00:00 = default_weather_02
...
[default_weather_01] ; имя типа погоды, описание которого ведется в этом блоке.
flares = flares_gradient1 ; здесь указывается имя заготовки блика
от солнца (заготовки прописаны в файле flares.ltx).
sky_texture = skysky_14_cube ; это имя используемого скайбокса. cкайбокс - это куб,
h.power = 15/dist
h.type = hit.shock - собственно, повреждение электрошоком. Составляет аж 15 попугаев,
причём для умерщвления голого существа, как я понимаю, достаточно одного попугая.
h.power = 1/dist
h.type = hit.strike - вот это мне не совсем понятно, но скорее всего должно вызвать постэф-
фект и кровотечение, коих электра, очевидно, не вызывает. Свидетельствует об изощрённо-
сти садизма Создателей.
Выложено исключительно для ознакомления, каждый трактует в меру своей испорченности
smile.gif Я себе уменьшил радиус до 10 метров и силу до 5, и смею надеяться, что химера
станет теперь сильным и опасным монстром, а не поводом сразу искать кнопку load.
Здесь указывается время смены типов погоды, каждый тип включает в себя свой скайбокс и
индивидуальные параметры освещения, дождя, грозы, и звука окружения. Переход осуще-
ствляется не скачкообразно, а плавно, практически не заметно.
Страница 43
окружающий всю локацию, на 6 граней которого натянуты 6 текстур из файла, указанного
в этой строке. нужно обратить внимание, что строка содержит еще и путь к файлу.
sky_rotation = 0 ; определяет положение (азимут) скайбокса на описываемый час.
sky_color = 1.0, 1.0, 1.0 ; это цвет неба, или, точнее, цвет рассеянного света,
формат из 3 цифр, как и в параметрах ниже, подразумевает цветовую модель RGB,
учитывая то, что здесь максимальная интенсивность цвета (255), здесь равна 1.0.
например, цвет неба, равный [1.0, 0.0, 0.0] - зальет окрестность ярко красным светом.
стоит учитывать, что здесь описывается не цвет, а свет, поэтому параметр,
например, [0,0,0] - даст не черный цвет, а отсутствие вообще какого либо света.
аналогично эффекту смешивания в фотошопе (screen).
clouds_texture = skysky_oblaka ; это - имя тектуры облаков. не путать со скайбоксом.
clouds_color = 0.333, 0.341, 0.431, 0.7, 1.7 ; это цвет облаков, первые 3 цифры -
это RGB (см.выше), четвертая - это видимость (непрозрачность) текстуры облаков,
т.е 0 - облаков не видно, а 1 - полная видимость. пятая цифра - скорость движения
облаков.
far_plane = 350 ; это, судя по всему, дальность видимости (расстояние, на котором
обрезается карта).
fog_distance = 350 ; в DX9 это расстояние, на котором туман фактически "прекращает"
действовать. непосредственно дымка, интенсивность которой задаётся fog_density,
висит в радиусе fog_distance. за пределами этого радиуса часть геометрии "съедается"
и вместо неё отображается небо (скайбокс). правильно подобранная текстура неба
имитирует вдали клубы тумана. а уже дальше снова проявляется геометрия уровня (холмы
и т.д.). в DX8-режиме туман рудиментарен и обсуждать его нет особого смысла.
fog_color = 0.043, 0.043, 0.055 ; непосредственно сам цвет тумана.
fog_density = 0.9 ; это плотность тумана, выставив значение в 0, можно увидеть
четкие края карты.
rain_density = 0.2 ; это плотность дождя, действует, видимо, как и туман.
rain_color = 0.21, 0.21, 0.27 ; цвет (непосредственно капель) падающего дождя.
thunderbolt = thunderbolt_collection_default ; это имя заготовки грозы, если грозы
не предусмотрено, значение можно оставить пустым.
bolt_period = 4.5f ; это время между вспышками молний. значение прописано не в
секундах. В принципе, эмпирически установлено, что в грозовую погоду желательно
ставить значения около 20f, в дождливую - в районе 50f.
bolt_duration = 0.35f ; это собственно продолжительность фазы вспышки молнии.
выставив высокое значение, можно вовсе получить не молнию, а некое плавно
нарастающее свечение.
wind_velocity = 0.0 ; сила ветра.
wind_direction = 0.0 ; направление ветра.
Страница 44
ambient = 0.0425, 0.045, 0.0475 ; общее освещение локации, те тона, в которые она
выставив значения в [0,0,0] - получим кромешную тьму в зданиях и под навесами.
работает только на R2.
lmap_color = 1.0, 1.0, 1.0 ; видимо, цвет лайтмапа.
hemi_color = 0.0425, 0.045, 0.0475, 0.1 ;по слухам, параметр, идентичный амбиенту,
только предназначенный для статичного освещения. насчет четвертой цифры - не в курсе.
sun_color = 0.0, 0.0, 0.0 ; свет солнца, его интенсивность также влияет на тени,
если солнце не светит, теней от него не будет.
sun_dir = -18.0, 291 ; положение солнца, первая цифра - это высота, знак минус означает,
что солнце выше горизонта. от горизонта до горизонта солнце описывает полукруг, значения
в игре соотносятся с градусами, то есть от -0 до -180, зенит -90, вторая цифра определяет
env_ambient = ambient_env_rain ; это набор звуков окружения.
Параметры бликов
[flares_sun_rise] ; название cекции, параметры которой описываются ниже
flare_opacity = 0.340, 0.260, 0.500, 0.420, 0.260, 0.260 ; непрозрачность
каждого отражения, в порядке от дальнего к ближнему.
flare_position = 1.300, 1.000, 0.500, -0.300, -0.600, -1.000 ; позиция каждого
отражения на оси, порядок соотв. верхнему.
flare_radius = 0.080, 0.120, 0.040, 0.080, 0.120, 0.300 ; радиус каждого
отражения, порядок соотв. верхнему.
flare_textures = fxfx_flare1.tga, fxfx_flare2.tga,
fxfx_flare2.tga, fxfx_flare2.tga, fxfx_flare3.tga,
fxfx_flare1.tga
; имена текстур, использованных на каждое отражение, порядок аналогичен.
можно заметить, что прописан формат *.tga, в действительности используются,
как и везде, текстуры *.dds, а вообще - поддержка формата *.tga под вопросом.
flare_shader = effectsflare ; шейдер.
flares = on ; параметр включает или выключает блики, например, для луны -
они не уместны.
gradient = on ; параметр, включающий/выключающий ореол вокруг светила,
дающий эффект ослепления.
gradient_opacity = 1.0 ; непрозрачность ореола.
будет окрашена (цвет и интенсивность света фонового освещения там, где не светит солнце
-
положение солнца относительно сторон горизонта, нулевое значение вроде соответствует
югу.
Находятся в файле
flares.ltx
.
Страница 45
gradient_radius = 0.7 ; радиус ореола.
gradient_texture = fxfx_gradient.tga ;имя текстуры ореола.
gradient_shader = effectsflare ; аналогично [flare_shader].
source = on ;параметр, включающий/выключающий отображение источника, то есть
самого солнца или луны.
source_radius = 0.03 ; радиус источника.
source_texture = fxfx_sun_rise.tga ;имя используемой для источника текстуры.
source_shader = effectssun ; аналогично [flare_shader].
source_ignore_color = false ; игнорирование цвета источника.
Параметры фонарика
Файл находится по следующему пути:
config\models\objects\light_night.ltx
[torch_definition]
range = 30 ; дистанция в метрах.
range_r2 = 30 ; дистанция в метрах (для динамического освещения).
color = 0.22,0.22,0.22,0.2 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3.
color_r2 = 1.1,1.1,1.1,0.0 ; цвет, из 4 компонентов <r,g,b,a> значением от 0 до 3
(для динамического освещения).
omni_range = 3 ; дистанция освещения от фонариков неписей в метрах.
освещения).
omni_color = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a>
значением от 0 до 3.
omni_color_r2 = 1.0,1.0,1.0,0.1 ; цвет фонариков неписей, из 4 компонентов <r,g,b,a>
значением от 0 до 3 (для динамического освещения).
color_animator = empty ; цвет аниматора (empty - аниматор не используется).
spot_texture = internalinternal_light_torch_r2 ; текстура яркой точки (для динамического
освещения).
spot_angle = 45 ; угол освещения в градусах.
glow_texture = glowglow_torch_r2 ; текстура свечения фонарика, когда он направлен в глаза
omni_range_r2 = 3 ; дистанция освещения от фонариков неписей в метрах (для динамическо-
го