Перейти к контенту

Рекомендуемые сообщения

Что понимать под активацией? Если просто использование, то можно написать биндер и в нём поставить callback.use_object. Можно сделать активацию при подборе, тогда уже нужно в bind_stalker править callback на поднятие предмета. А можно вообще заменять им класс на II_ANTIR и далее вешать скрипты также, как на спальный мешок.

Ссылка на комментарий

Есть вот такая табличка:

local tbl_part = {["bloodsucker"] = {"mutant_krovosos_jaw", 1},.....}

Нужно проверить string.find'ом что mob:section() = bloodsucker и запустить

local function spawn(who, how)

со значениями таблицы.....

Тока я что-то никак не могу допетрить как это сделать (а вроде такая легкотня)....

Помогите пожалуйста.....

Изменено пользователем TRAMP14
Ссылка на комментарий

Ребята, у меня вопрос возник вот. В Баре очень часто вылетает с логом:

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...hadow of chernobyl\gamedata\scripts\state_mgr.script:192: C stack overflow

 

Понимаю, что слишком много людей в Баре, вылетает из-за невозможности произведения движком всех анимаций и т.д. (верно, да? :)) Так вот вопрос - каким образом можно избавиться от сего лога. Уменьшить количество неписей в Баре тоже не вариант - те самопроизвольно по Зоне ходят, в Бар частенько наведываются.

Ссылка на комментарий

Desertir, не знаю... Да и не каждого же игрока просить его увеличивать...

 

Хм... А вот есть ещё вариант у меня - из-за косячного смарттеррейна. Вроде бывало такое у меня, если неправильно создавал. Может, пока спавн правил, пару лишних букв вставил.

Ссылка на комментарий

Новый вопрос: в самом начале скрипта АМК объявляю переменную:

------------------- Библиотека служебных скриптов ----------------
game_time_factor = level.get_time_factor()

Потом, в функции загрузки игры обновляю:

-- Определяем текущий тайм-фактор
    game_time_factor = level.get_time_factor()

Как в ОГСЕ, короче :) Просто проблема в том, что игра вылетает при создании новой игры во время появления надписи Сервер:Старт. Что такое может вызвать? Забыл сказать - без лога.

Изменено пользователем Disord
Ссылка на комментарий

Disord

Возможно, это происходит из-за того, что уровень еще не загрузился - из предположения, что в пространство имен level функцию запихнули не просто так, и уровень таки нужен.

 

Попробуй поменять на

объявление:

game_time_factor = nil

обновление - оно ж на актора завязано в конечном итоге, если спавним его, значит, уже есть куда.

if not game_time_factor then
    game_time_factor = level.get_time_factor()
end

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

Вопрос не совсем по скриптованию, но всё же.

Кто-нибудь встречал что-то вроде мода\надстройки, который\которая восстанавливает в ЗП все старые секции логики из ТЧ? Например, sr_sound ля рестрикторов, kamp для сталкеров. Встречал некоторые по отдельности, но интересует наличие их в одной сборке.

Ссылка на комментарий

Люди, прописал в алл.спаун спаун полтергейстов в Тёмной Долине около базы бандосов, где лаборатория. Полюбому вылет при подходе

 

Expression : fatal error

Function : CInifile::r_string

File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp

Line : 352

Description : <no expression>

Arguments : Can't find variable Sound_Idle in [m_poltergeist_normal]

 

В спауне всё прописано вроде верно, но кто знает...звуки главное есть, конфиг полтергейста оригинальный от игры.

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

Ссылка на комментарий

Disord, не мог бы по подробнее? я пытался просто скопировать этот шаблон с начала конфига полтергейста, где "monster_base", но всё равно. Вот что странно.

 

 

Не помогло, только что сделал. Тоже самое. Очень странно.

Изменено пользователем herurg

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

Ссылка на комментарий

Тогда удали её (sound_idle). По идеи должен быть звук стандартного полтергейста

Изменено пользователем TRAMP14
Ссылка на комментарий

Не помогло, и тот же лог. Да и странно было б, если бы помогло...конфиг то стандартный.

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

Ссылка на комментарий

Вот это интерестно. Вы из какой секции удаляете sound_idle? Надеюсь не из [m_poltergeist_e]:monster_base?

 

p/s/ Насколько я знаю не найден звук.... а не переменная.....

Изменено пользователем TRAMP14
Ссылка на комментарий

TRAMP14, будете смеяться, но попробовал и ЭТОТ способ. Это же славянская игра, здесь всё что угодно может быть :) не работает. Удалил sound_idle из секции m_poltergeist_normall - не пашет, сделал sound_idle Sound_idle - не пашет. Попробовал всё вместе - не пашет! И главное - всё с одним логом :D

 

вот мой конфиг

[m_poltergeist_e]:monster_base

GroupControlSection = spawn_group

SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_radioactive

$spawn = "monsters\old\poltergeist" ; option for Level Editor

$npc = on ; option for Level Editor

;$prefetch = 16

Scheduled = on ; option for ALife Simulator

Human = off ; option for ALife Simulator

Health = 250 ; option for ALife Simulator

MinSpeed = 1.0 ; option for ALife Simulator

MaxSpeed = 1.5 ; option for ALife Simulator

going_speed = 2.0 ; option for ALife Simulator

current_level_going_speed = 1;2 ; option for ALife Simulator

search_speed = .5 ; option for ALife Simulator

visual = monsters\poltergeist\poltergeist

corpse_visual = monsters\poltergeist\poltergeyst_dead

icon = ui_npc_monster_poltergeist

MaxHealthValue = 150 ; range [0..200]

DynamicObjectsCount = 32

smart_terrain_choose_interval = 00:15:00

 

cform = skeleton ; collision class

class = SM_POLTR ; AI class

 

ef_creature_type = 5 ;10 ; option for evaluation functions

ef_weapon_type = 12 ;3

ef_detector_type = 1

panic_threshold = 0.1

 

script_binding = bind_monster.bind

 

bone_torso = bip01_spine1 ; bone name

bone_head = bip01_head ; bone name

bone_fire = bip01_head ; bone name

 

weapon_usage = 0 ; boolean

 

type = flamer

 

;---------------------------------------------------------------------

; Physics

;---------------------------------------------------------------------

ph_box0_center = 0.0, 0.2, 0.0 ;0.0, 0.9, 0.0

ph_box0_size = 0.50, 0.4, 0.50

ph_box1_center = 0.0, 0.2, 0.0

ph_box1_size = 0.50, 0.4, 0.50

ph_crash_speed_min = 10

ph_crash_speed_max = 30

ph_collision_damage_factor = 0.1

ph_mass = 80 ; also it's the food

 

destroyed_vis_name = physics\Dead_Body\trupik_crash

 

;---------------------------------------------------------------------

ph_skeleton_airr_lin_factor = 2.0 ;550.0 (изменно из-за того, что убрано домножение коэффициент 0.002 из кода)

ph_skeleton_airr_ang_factor = 0.0 ;0.0 (изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0))

ph_skeleton_hinger_factor1 = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода)

ph_skeleton_ddelay = 15.0 ;Время изменения значения трения в суставе с момента создания шелла, сек

 

ph_skel_fatal_impulse_factor = 6.0

ph_after_death_velocity_factor= 0.75

ph_skel_shot_up_factor = 0.25

;---------------------------------------------------------------------

 

 

;----------------------------------------------------------------------------

; Movement::Velocities & Acceleration

;----------------------------------------------------------------------------

; speed factors linear | angular_real | angular_path | min | max

Velocity_Stand = 0, 5.0, 5.0, 0.2, 0.5

Velocity_WalkFwdNormal = 1.7, 2.0, 2.0, 0.2, 2.0

Velocity_WalkFwdDamaged = 1.5, 3.0, 3.0, 0.8, 2.0

Velocity_RunFwdNormal = 4.0, 3.0, 3.0, 0.4, 1.0

Velocity_RunFwdDamaged = 2.5, 3.2, 3.2, 0.4, 1

Velocity_Drag = 0.6, 3.0, 3.0, 1, 1

Velocity_Steal = 1.5, 3.0, 3.0, 1, 1

 

; Speed factors while invisible

Velocity_Invisible_Linear = 5.0

Velocity_Invisible_Angular = 3.5

 

; acceleration

Accel_Generic = 1.5

Accel_Calm = 2.5

Accel_Aggressive = 3.0

 

;--------------------------------------------------------------------------

; Attack parameters

;--------------------------------------------------------------------------

;attack parameters

MinAttackDist = 0.5 ;2.1

MaxAttackDist = 2.0

 

as_min_dist = 0.1

as_step = 0.3

 

;-------------------------------------------------------------------------

; Entity Conditions

;-------------------------------------------------------------------------

DayTime_Begin = 0

DayTime_End = 21

Min_Satiety = 0.7

Max_Satiety = 0.95

 

distance_to_corpse = 1.8

 

terrain = poltergeist_terrain

 

hit_type = strike

 

;entity condition

 

satiety_v = 0.0001 ;скорость уменьшения сытости со временем

radiation_v = 0.00001 ;скорость уменьшения радиации

satiety_power_v = 0.005 ;увеличение силы при уменьшении сытости

satiety_health_v = 0.001 ;увеличение здоровья при уменьшении сытости

satiety_critical = -1.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться

radiation_health_v = 0.0001 ;уменьшение здоровья при воздействии радиации

morale_v = 0.1 ;скорость восстановления морали

health_hit_part = 1.0 ;процент хита, уходящий на отнимание здоровья

power_hit_part = 1.0 ;процент хита, уходящий на отнимание силы

psy_health_v = 0.1 ;скорость восстановления psy-здоровья

 

immunities_sect = poltergeist_immunities

 

;открытые раны

bleeding_v = 0 ;потеря крови при номинальной ране в секунду

wound_incarnation_v = 0.3 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)

min_wound_size = 0.01

 

sleep_health = 1.0

sleep_power = 1.0

sleep_satiety = 1.0

sleep_radiation = 1.0

sleep_psy_health = 1.0

 

eat_freq = 5.0

eat_slice = 0.01

eat_slice_weight = 10.0

 

satiety_threshold = 0.5 ; below this value monster fill hunger

 

;---------------------------------------------------------

; Sounds and sound parameters

;---------------------------------------------------------

sound_idle = monsters\biting\def_

sound_eat = monsters\biting\def_

sound_aggressive = monsters\biting\def_

sound_attack_hit = monsters\biting\def_

sound_take_damage = monsters\biting\def_

sound_die = monsters\biting\def_

sound_threaten = monsters\biting\def_

sound_landing = monsters\biting\def_

sound_steal = monsters\biting\def_

sound_panic = monsters\biting\def_

sound_growling = monsters\biting\def_

sound_die_in_anomaly = monsters\biting\def_

 

killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE

 

 

idle_sound_delay = 0

eat_sound_delay = 0

attack_sound_delay = 0

 

sound_distant_idle = monsters\biting\def_

distant_idle_sound_delay = 80000

distant_idle_sound_range = 100.0

 

SoundThreshold = 0.06 ; range [0..1]

max_hear_dist = 60

 

;-------------------------------------------------------------------------

; Vision

;-------------------------------------------------------------------------

 

eye_fov = 100 ;120

eye_range = 40 ;60

 

DynamicObjectsCount = 32

 

min_view_distance = 0.8 ; коэффициент, который множится на eye_range, в зависимости от угла

max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла

visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым

always_visible_distance = 0.5

time_quant = 0.001

decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам

velocity_factor = 0.5

luminocity_factor = 0.5 ; фактор освещения (только для Актёра)

transparency_threshold = 0.25

 

;-------------------------------------------------------------------------

; Morale

;-------------------------------------------------------------------------

Morale_Hit_Quant = 0.01

Morale_Attack_Success_Quant = 0.3

Morale_Take_Heart_Speed = 0.1

Morale_Despondent_Speed = 0.1

Morale_Stable_Speed = 0.3

Morale_Despondent_Threashold = 0.5

 

;-------------------------------------------------------------------------

; Other Stuff (refactoring needed)

;-------------------------------------------------------------------------

DamagedThreshold = 0.4

 

material = creatures\large ;objects\bullet

 

 

squad_attack_algorithm = 1

attack_effector = m_poltergeist_attack_effector

 

attack_params = m_poltergeist_attack_params

step_params = m_poltergeist_step_params

 

anger_hunger_threshold = 0.1

anger_loud_threshold = 0.7

 

LegsCount = 2

damage = m_poltergeist_damage

 

;---------------------------

 

Invisible_Energy_Restore_Velocity = 0.1

Invisible_Energy_Decline_Velocity = 0.0

Invisible_Energy_Critical_Value = 0.01

Invisible_Energy_Activate_Value = 0.99

Invisible_Energy_Aggressive_Restore_Velocity = 0.1

 

Particles_Damage = monsters\polter_damage

Particles_Death = monsters\polter_death

Particles_Idle = monsters\polter_idle

Particles_Hidden = monsters\polter_linza

 

;-- Delays -------------------

 

Delay_Flame_Min = 30000

Delay_Flame_Normal = 30001

Delay_Flame_Aggressive = 30001

 

Delay_Tele_Min = 0 ;100

Delay_Tele_Normal = 100 ;300

Delay_Tele_Aggressive = 10 ;200

 

Delay_Scare_Min = 30000

Delay_Scare_Normal = 30001

Delay_Scare_Aggressive = 30001

 

;---------------------------

 

;species of monster

species = poltergeist

rank = 401

spec_rank = normal

community = poltergeist

 

critical_wound_threshold = -1

critical_wound_decrease_quant = 0.

 

 

[m_Poltergeist_damage]

;bone_name = <hit_scale>,-1,<wound_scale>

;<hit_scale> - коэфф. изменения хита (уменьшения здоровья)

;<wound_scale> - коэфф. изменения величины открытой раны

 

default = 1.0, -1, 0.1

 

bip01_pelvis = 1.0, -1, 0.2

bip01_spine = 1.0, -1, 0.2

bip01_spine1 = 1.0, -1, 0.2

bip01_neck = 1.0, -1, 0.5

bip01_head = 2.0, -1, 0.3

[m_poltergeist_attack_params]

;---------------------------------------------------------------------------------------------------------------------------------------------

; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, top, bottom) | Test Dist

;---------------------------------------------------------------------------------------------------------------------------------------------

;Left hand Strike

stand_attack_0 = 0.30, 0.20, 50, 0.0, 1.0, 1.0, -1.6, 1.6, -1.6, 1.6, 3.5

;Left hand Strike2

stand_attack_1 = 0.30, 0.15, 50, 0.0, 1.0, 1.0, -1.6, 1.6, -1.6, 1.6, 3.5

 

[m_poltergeist_attack_effector]

 

duality_h = 0.01

duality_v = 0.01

blur = 0.01

gray = 0.5

noise_intensity = 0.0

noise_grain = 1

noise_fps = 30

color_base = 0.65,0.15,0.1

color_gray = 0.333,0.333,0.333

color_add = 0,0,0

time = 0.3

time_attack = 0.05 ; fade in

time_release = 0.25 ; fade out

 

; camera effects

ce_time = 0.45 ;time

ce_amplitude = -15.0

ce_period_number = 1.5 ;2.0

ce_power = 1.5 ;0.7 ; power

 

[m_poltergeist_step_params] left right right left

;------------------------------------------------------------------------------------------------------------------

; anim cycles | time1 | power1 | time2 | power2 | time3 | power3 | time4 | power4 |

;-----------------------------------------------------------------------------------------------------------------

stand_walk_fwd_0 = 1, 0.1, 1, 0.34, 1, 0.6, 1, 0.84, 1

stand_walk_fwd_dmg_0 = 1, 0.2, 1, 0.25, 1, 0.5, 1, 0.7, 1

stand_run_0 = 1, 0.1, 1, 0.3, 1, 0.5, 1, 0.55, 1

stand_run_dmg_0 = 1, 0.2, 1, 0.25, 1, 0.7, 1, 0.75, 1

 

;===========================================================================

; TERRAIN

;===========================================================================

[poltergeist_terrain]

255,000,255,255

 

;===========================================================================

; IMMUNITIES

;===========================================================================

[poltergeist_immunities]

burn_immunity = 0.3 ;коэффициенты иммунитета

strike_immunity = 0.7

shock_immunity = 0.5

wound_immunity = 0.3

radiation_immunity = 0.0

telepatic_immunity = 1.0

chemical_burn_immunity = 1.0

explosion_immunity = 1.0

fire_wound_immunity = 1.0

 

 

[m_poltergeist_normal]:m_poltergeist_e

$spawn = "monsters\old\poltergeist_normal"

spec_rank = normal

rank = 401

community = poltergeist

 

;===========================================================================

; TELE

;===========================================================================

 

[m_poltergeist_normal_tele]:m_poltergeist_normal

$spawn = "monsters\poltergeists\poltergeist_normal_tele"

 

type = telekinetic

 

Tele_Fly_Time = 0.30

Tele_Fly_Velocity = 30

 

Tele_Find_Radius = 10

Tele_Object_Min_Mass = 40

Tele_Object_Max_Mass = 500

Tele_Object_Count = 4;7

Tele_Hold_Time = 2000

Tele_Wait_Time = 3000

Tele_Delay_Between_Objects_Time = 1000

Tele_Distance = 30

Tele_Object_Height = 2

Tele_Time_Object_Keep = 15000

Tele_Raise_Speed = 6

Tele_Delay_Between_Objects_Raise_Time = 200

 

Particles_Damage = monsters\polter_damage

Particles_Death = monsters\polter_death

Particles_Idle = monsters\polter_idle

Particles_Hidden = monsters\polter_linza

 

 

Hidden_Particles = monsters\polter_linza

;Hide_Particles = monsters\polter_yadro;monsters\polter_hide

 

Sound_Idle = monsters\poltergeist\tele_idle_0

sound_take_damage = monsters\poltergeist\tele_damage_

sound_die = monsters\poltergeist\tele_death_

 

sound_tele_hold = monsters\burer\burer_tele_hold

sound_tele_throw = monsters\burer\burer_tele_throw

 

[m_poltergeist_tele_outdoor]:m_poltergeist_normal_tele

$spawn = "monsters\poltergeists\poltergeist_tele_outdoor"

 

Tele_Find_Radius = 12 ;20

 

 

 

;===========================================================================

; FLAMER

;===========================================================================

 

[m_poltergeist_normal_flame]:m_poltergeist_normal

$spawn = "monsters\poltergeists\poltergeist_normal_flame"

 

type = flamer

 

flame_sound = monsters\poltergeist\attack_hit_flame

flame_particles_prepare = monsters\polter_yadro

flame_particles_fire = static\monsters_fire_idle

flame_particles_stop = static\monsters_fire_stop

flame_fire_time_delay = 1000 ;2400 ; don't change - for programmers only

flame_fire_time_play = 6000

flame_length = 8.0

flame_hit_value = 0.3

flame_hit_delay = 200

flames_count = 3

flames_delay = 2000 ;3500 ;2000

flame_aura_radius = 10

 

flame_scan_radius = 10

flame_scan_sound = monsters\burer\burer_scan_affect_0

flame_scan_effector_section = m_poltergeist_scan_effector

flame_scan_delay_min_max = 5000,10000

 

 

 

 

flame_min_dist = 2

flame_max_dist = 15

flame_min_height = 0.5

flame_max_height = 1.0

 

 

 

Particles_Damage = monsters\polter_damage

Particles_Death = monsters\polter_death_00

Particles_Idle = monsters\polter_idle_00

Particles_Hidden = monsters\polter_linza_00

 

 

Hidden_Particles = monsters\polter_linza_00 ;monsters\polter_hidden

Sound_Idle = monsters\poltergeist\fire_idle_0

 

[m_poltergeist_scan_effector]

duality_h = 0.003

duality_v = 0.002

blur = 1.5

gray = 0.3

noise_intensity = 0.0

noise_grain = 2

noise_fps = 8

color_base = 0.55,0.5,0.5;0.637,0.442,0.456

color_gray = 0.333,0.333,0.333

color_add = 0.05,0.0,0.0

time = 10.00

time_attack = 0.3 ; fade in

time_release = 0.85 ; fade out

 

 

[m_poltergeist_strong_flame]:m_poltergeist_normal_flame

$spawn = "monsters\poltergeists\poltergeist_strong_flame"

 

immunities_sect = poltergeist_immunities_strong

flame_hit_value = 0.7

 

[poltergeist_immunities_strong]

burn_immunity = 0.3 ;коэффициенты иммунитета

strike_immunity = 0.7

shock_immunity = 0.5

wound_immunity = 0.3

radiation_immunity = 0.0

telepatic_immunity = 1.0

chemical_burn_immunity = 1.0

explosion_immunity = 0.3

fire_wound_immunity = 0.3

 

Изменено пользователем herurg

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...