ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.11.2019

Просмотров: 2756

Скачиваний: 36

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Страница 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"})


background image

Страница 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.

Здесь указывается время смены типов погоды, каждый тип включает в себя свой скайбокс и 
индивидуальные параметры освещения, дождя, грозы, и звука окружения. Переход осуще-
ствляется не скачкообразно, а плавно, практически не заметно.


background image

Страница 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 ; направление ветра.


background image

Страница 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

.


background image

Страница 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 ; дистанция освещения от фонариков неписей в метрах (для динамическо-
го