Модострой:Вопросница
Аdmin
Воскресенье, 03.11.2013, 19:36 | Сообщение # 1
Статус :
Опытный :
Сообщений :
1538
Награды :
11
Регистрация :
28.03.2011
В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга. Не флудить Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там. В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.
Структура папок и файлов в корневом каталоге игры: ...\S.T.A.L.K.E.R\gamedata\anims – папка содержит исполнительные файлы эффектов (например от ПНВ)....\S.T.A.L.K.E.R\gamedata\config – папка содержит основные конфигурационные файлы (т. е. большинство настроек игры)...\S.T.A.L.K.E.R\gamedata\meshes – содержит модели игровых предметов и персонажей......\S.T.A.L.K.E.R\gamedata\scripts – папка со скриптами (рабочими файлами содержащими в себе наборы функций) – основная папка, отвечающая за ответные действия игры и действия производимых игроком в игре....\S.T.A.L.K.E.R\gamedata\shaders – папка содержит в себе конфигурационные файлы шейдеров....\S.T.A.L.K.E.R\gamedata\sounds – здесь находятся все звуки игры (разложены по своим каталогам и папкам)...\S.T.A.L.K.E.R\gamedata\spawns – содержит файл спавна – очень важный файл – не трогать без нужды!!!...\S.T.A.L.K.E.R\gamedata\textures – содержит разложенные по каталогам и папкам текстуры используемые в игре.Теперь разберем папки в каталоге «config» ...\S.T.A.L.K.E.R\gamedata\config\creatures - содержит массу конфигурационных файлов, в основном отвечающих за взаимодействие Главного героя игры (в дальнейшем ГГ) и прочего окружения в игре и ТТХ самого ГГ....\S.T.A.L.K.E.R\gamedata\config\gameplay – содержит конфиг. файлы персонажей игры (НПС) отвечающие за внешний вид, статус, снаряжение. Файлы: character_desc_ххх (где ххх – название локации) и character_desc_general (отвечает за зомбированного персонажа). Также содержит файлы диалогов и профилей НПС.…\S.T.A.L.K.E.R\gamedata\config\misc – конфиг.файлы торговцев (папки с именами торговцев), артефактов, брони, квестовых предметов, уникальных предметов, файл отвечающий за награды за автозадания, файл эффектов (алкоголизма, ранения, ПНВ и прочих)...…\S.T.A.L.K.E.R\gamedata\config\mp – среди прочих содержит важный файл mp_ranks – отвечающий за выпадение оружия и патронов из рук ГГ и НПС – без прописывания добавляемого в игру оружия в этот файл при выпадении нового оружия из рук ГГ\НПС будут следовать вылеты.…\S.T.A.L.K.E.R\gamedata\config\text\rus – содержит файлы описаний всего и вся находящегося в игре (брони, артефактов, оружия, предметов и прочего).…\S.T.A.L.K.E.R\gamedata\config\weapons – содержит конфиг.файлы оружия и боеприпасов используемых в игре.…\S.T.A.L.K.E.R\gamedata\config\weathers – содержит конфиг.файлы настройки погоды на локациях.Теперь немного подробнее о файлах. ...\S.T.A.L.K.E.R\gamedata\config\misc: Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.outfits – содержит секции конфигов костюмов.artefacts - содержит секции конфигов артефактов.items - содержит секции конфигов предметов.monster_items - содержит секции конфигов частей монстровpostprocess - содержит секции конфигов пост. процессов (например: ПНВ).quest_items - содержит секции конфигов квестовых предметов.task_manager - содержит секции наград за автоквесты.unique_items - содержит секции конфигов уникального оружия и костюмов.
У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.
Архив
Архив#2
Воскресенье, 03.11.2013, 19:36
Статус :
Сообщений :
666
Регистрация :
28.03.2011
Статус :
Новичок :
Сообщений :
324
Награды :
4
Регистрация :
20.12.2013
Можно ли продлить опьянение / головокружение от водки (ещё больше выпить - не предлагать)?
Четверг, 28.01.2016, 21:34
Статус :
Сообщений :
666
Регистрация :
20.12.2013
Время Альянса
Статус :
Ветеран :
Сообщений :
4070
Награды :
16
Регистрация :
19.07.2013
killer_mutants , Или увеличить количество алкоголя в предмете (eat_alcohol) или снизить скорость выведения алкоголя у ГГ (alcohol_v).
Четверг, 28.01.2016, 21:48
Статус :
Сообщений :
666
Регистрация :
19.07.2013
Статус :
Новичок :
Сообщений :
324
Награды :
4
Регистрация :
20.12.2013
Цитата denis2000 (
)
снизить скорость выведения алкоголя у ГГ (alcohol_v)
Вот, то что нужно! Ну просто отпад, теперь приближу к реальности! У меня сейчас значение -0.0005 Значит цифру надо уменьшить? Дополнительный ноль нарисовать?
Четверг, 28.01.2016, 21:57
Статус :
Сообщений :
666
Регистрация :
20.12.2013
Золотой Обоз
Статус :
Опытный :
Сообщений :
1311
Награды :
9
Регистрация :
09.08.2015
denis2000 , с анимациями я вообще рабоать не умею, так что скрпиты. Только где и что править? Я смотрел и биндер торговца и mob_trader скрипт, но нигде нет упоминания о костях.
Четверг, 28.01.2016, 22:18
Статус :
Сообщений :
666
Регистрация :
09.08.2015
Время Альянса
Статус :
Ветеран :
Сообщений :
4070
Награды :
16
Регистрация :
19.07.2013
Цитата _S_k_i_F_ (
)
Только где и что править?
Логику НПС.
Пятница, 29.01.2016, 08:50
Статус :
Сообщений :
666
Регистрация :
19.07.2013
huil12
Пятница, 29.01.2016, 10:41 | Сообщение # 9606
Пятница, 29.01.2016, 10:41
Статус :
Сообщений :
666
Регистрация :
27.03.2014
DеXter
Пятница, 29.01.2016, 10:46 | Сообщение # 9607
Статус :
Неопытный :
Сообщений :
462
Награды :
5
Регистрация :
28.09.2015
huil12 , проверка, лежит ли оружие в рюкзаке: function weapon_vzato(task, objective) if db.actor ~= nil then return db.actor:object("wpn_ak74u") ~= nil end return false end Вместо wpn_ak74u - любое другое оружиеДобавлено (29.01.2016, 10:46) --------------------------------------------- Всем доброго дня. Подскажите, как в тч полностью убрать радар?
Сообщение отредактировал DеXter - Пятница, 29.01.2016, 10:46
Пятница, 29.01.2016, 10:46
Статус :
Сообщений :
666
Регистрация :
28.09.2015
Золотой Обоз
Статус :
Опытный :
Сообщений :
1311
Награды :
9
Регистрация :
09.08.2015
denis2000 , а что конкретно править? Ставил эту логику - вылет
[logic] active = mob_trader@new_idle1 trade = misc\trade\trade_sidor.ltx level_spot = trader ;-------------------------- ;---First Meet------------- ;-------------------------- [mob_trader@hello_first] anim_global = hello anim_head = normal sound_phrase = trader_greet_first on_signal = animation_end | mob_trader@new_idle2 ;------------------------------ ;---------Wait player---------- ;------------------------------ [mob_trader@angry_1] anim_global = desk_idle anim_head = normal sound_phrase = trader_wait on_signal = sound_phrase_end | {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1 [mob_trader@angry_2] anim_global = diagonal_idle anim_head = normal sound_phrase = trader_wait on_signal = sound_phrase_end | {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2 [mob_trader@angry_3] anim_global = chair_hack_idle anim_head = normal sound_phrase = trader_wait on_signal = sound_phrase_end | {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3 [mob_trader@angry_4] anim_global = compute_idle anim_head = normal sound_phrase = trader_wait on_signal = sound_phrase_end | {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4 ;---------------------------------- ;------------- Idle --------------- ;---------------------------------- ;Основной idle (1) - за столом [mob_trader@new_idle1] anim_global = desk_idle on_signal = animation_end | {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1 on_info = {=talking} mob_trader@new_idle1_to_idle3 %+esc_skip_angry% on_actor_dist_le_nvis = 5 | {+esc_player_sleeps} mob_trader@angry_1 %-esc_player_sleeps% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Idle (2) - по диагонали [mob_trader@new_idle2] anim_global = diagonal_idle on_signal = animation_end | {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2 on_info = {=talking} mob_trader@new_idle2_to_idle3 %+esc_skip_angry% on_actor_dist_le_nvis = 5 | {+esc_player_sleeps} mob_trader@angry_2 %-esc_player_sleeps% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Idle (3) - откинувшись на спинку [mob_trader@new_idle3] anim_global = chair_hack_idle on_signal = animation_end | {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3 on_info = {=talking} mob_trader@new_talking %+esc_skip_angry% on_actor_dist_le_nvis = 5 | {+esc_player_sleeps} mob_trader@angry_3 %-esc_player_sleeps% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Idle (4) - за компьютером [mob_trader@new_idle4] anim_global = compute_idle on_signal = animation_end | {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4 on_info = {=talking} mob_trader@new_idle4_to_idle2 %+esc_skip_angry% on_actor_dist_le_nvis = 5 | {+esc_player_sleeps} mob_trader@angry_4 %-esc_player_sleeps% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Idle (5) - читает [mob_trader@new_idle5] anim_global = listen_idle on_signal = animation_end | {~45} mob_trader@new_idle5_to_idle1, mob_trader@new_idle5_to_idle5 on_info = {=talking} mob_trader@new_idle5_to_idle1 %+esc_skip_angry% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ;---------------------------------- ;-------- Автопереходы -------- ;---------------------------------- ; Стол - стол (промежуточная) [mob_trader@new_idle1_to_idle1] anim_global = desk_idle on_signal = animation_end| mob_trader@new_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Диагональ - диагональ (промежуточная) [mob_trader@new_idle2_to_idle2] anim_global = diagonal_idle on_signal = animation_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Спинка - спинка (промежуточная) [mob_trader@new_idle3_to_idle3] anim_global = chair_hack_idle on_signal = animation_end | mob_trader@new_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Компьютер - компьютер (промежуточная) [mob_trader@new_idle4_to_idle4] anim_global = compute_idle on_signal = animation_end | mob_trader@new_idle4 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Читает - читает (промежуточная) [mob_trader@new_idle5_to_idle5] anim_global = listen_idle on_signal = animation_end | mob_trader@new_idle5 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ;---------------------------------- ;----- Переходы между idle-ми ---- ;---------------------------------- ; Диагональ - компьютер [mob_trader@new_idle2_to_idle4] anim_global = diagonal_to_compute on_signal = animation_end | mob_trader@new_idle4 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Компьютер - диагональ [mob_trader@new_idle4_to_idle2] anim_global = compute_idle_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ;on_info = {+esc_player_sleeps} mob_trader@angry %-esc_player_sleeps% on_actor_dist_le_nvis = 5 | {+esc_player_sleeps} mob_trader@angry_2 %-esc_player_sleeps% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Диагональ - спинка [mob_trader@new_idle2_to_idle3] anim_global = diagonal_to_chair_hack on_signal = animation_end| {=talking} mob_trader@new_talking %+esc_skip_angry%, mob_trader@new_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Спинка - диагональ [mob_trader@new_idle3_to_idle2] anim_global = chair_hack_to_diagonal on_signal = animation_end| mob_trader@new_idle2 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Стол - спинка [mob_trader@new_idle1_to_idle3] anim_global = desk_to_chair_hack on_signal = animation_end|{=talking} mob_trader@new_talking %+esc_skip_angry%, mob_trader@new_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Спинка - стол [mob_trader@new_idle3_to_idle1] anim_global = chair_hack_to_desk on_signal = animation_end| mob_trader@new_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Стол - диагональ [mob_trader@new_idle1_to_idle2] anim_global = desk_to_diagonal on_signal = animation_end| mob_trader@new_idle2 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Диагональ - стол [mob_trader@new_idle2_to_idle1] anim_global = diagonal_to_desk on_signal = animation_end| mob_trader@new_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Стол - читает [mob_trader@new_idle1_to_idle5] anim_global = desk_to_listen on_signal = animation_end| mob_trader@new_idle5 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ; Читает - стол [mob_trader@new_idle5_to_idle1] anim_global = listen_to_desk on_signal = animation_end| mob_trader@new_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played +esc_bring_habar_complete} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {+esc_actor_inside_traders_dung -esc_trader_bye_search_played -esc_trader_bye_first_search_played -esc_take_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played +esc_trader_bye_first_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | mob_trader@new_wait ;-------------------------------------- ;------------- Разговор --------------- ;-------------------------------------- [mob_trader@new_talking] anim_global = chair_hack_talk anim_head = normal on_info = {!talking} mob_trader@new_idle3 %+esc_skip_angry% ;-------------------------------------- ;------------ Торговля ---------------- ;-------------------------------------- [mob_trade@new] anim_global = chair_hack_idle on_info = {=trading =trade_exchanged} mob_trader@new_trade_exchanged on_info2 = {!trading =trade_exchanged} mob_trader@new_trade_good on_info3 = {!trading !trade_exchanged} mob_trader@new_trade_bad [mob_trader@new_trade_bad] anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = angry ;sound_phrase = trader_bad_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 11 | mob_trader@new_wait [mob_trader@new_trade_exchanged] anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = normal ;sound_phrase = trader_exchanged on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 11 | mob_trader@new_wait [mob_trader@new_trade_good] anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = good ;sound_phrase = trader_good_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 11 | mob_trader@new_wait ;------------------------------------- ;---------- Приветствия -------------- ;------------------------------------- [mob_trader@new_hello] anim_global = hello anim_head = normal sound_phrase = trader_hello_what_have_you_got on_signal = animation_end | mob_trader@new_idle2 [mob_trader@hello_search] anim_global = hello anim_head = normal sound_phrase = trader_wait_habar_greet on_signal = animation_end | mob_trader@new_idle2 [mob_trader@hello_return] anim_global = hello anim_head = normal sound_phrase = trader_greet_habar on_signal = animation_end | mob_trader@new_idle2 [mob_trader@new_bye] on_actor_dist_ge_nvis = 11| mob_trader@new_wait anim_global = hello anim_head = normal ;sound_phrase = trader_bye on_signal = animation_end | mob_trader@new_idle2 [mob_trader@bye_search] on_actor_dist_ge_nvis = 11 | mob_trader@new_idle2 anim_global = hello anim_head = normal sound_phrase = trader_wait_habar_bye on_signal = animation_end | mob_trader@new_idle1 [mob_trader@bye_garbage] on_actor_dist_ge_nvis = 11 | mob_trader@new_wait anim_global = hello anim_head = normal sound_phrase = trader_bye_garbage on_signal = animation_end | mob_trader@new_idle2 [mob_trader@new_wait] anim_global = diagonal_idle_short on_actor_dist_le_nvis = 3 | {-esc_trader_hello_played +esc_actor_inside_traders_dung +esc_bring_habar_complete +esc_trader_hello_first_played} mob_trader@new_hello %+esc_trader_hello_played%, {-esc_trader_hello_played -esc_actor_inside_traders_dung -esc_take_habar_complete +esc_trader_hello_first_played} mob_trader@new_hello %+esc_trader_hello_played%, {-esc_trader_hello_first_played +esc_actor_come_first} mob_trader@hello_first %+esc_trader_hello_first_played +esc_trader_hello_played%, {-esc_trader_hello_search_played +esc_actor_inside_traders_dung +esc_trader_hello_first_played -esc_take_habar_complete} mob_trader@hello_search %+esc_trader_hello_search_played%, {-esc_trader_hello_return_played +esc_take_habar_complete} mob_trader@hello_return %+esc_trader_hello_return_played% on_actor_dist_ge_nvis = 7 | {-esc_trader_bye_played +esc_trader_hello_played +esc_actor_inside_traders_dung +esc_bring_habar_complete +esc_trader_hello_first_played} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_played +esc_trader_hello_played -esc_actor_inside_traders_dung -esc_take_habar_complete +esc_trader_hello_first_played} mob_trader@new_bye %+esc_trader_bye_played%, {-esc_trader_bye_search_played +esc_trader_hello_search_played +esc_trader_hello_first_played +esc_actor_inside_traders_dung -esc_bring_habar_complete} mob_trader@bye_search %+esc_trader_bye_search_played%, {-esc_trader_bye_garbage_played +esc_trader_hello_return_played +esc_bring_habar_complete} mob_trader@bye_garbage %+esc_trader_bye_garbage_played% on_actor_dist_ge_nvis2 = 11 | %-esc_trader_hello_played -esc_trader_bye_played -esc_trader_hello_search_played -esc_trader_bye_search_played%
Брал логику Сидора из Путь во Мгле - тот же вылет. Может я его не правильно спавню? Как вообще его правильно спавнить? Зараннее спасибо!
Пятница, 29.01.2016, 14:09
Статус :
Сообщений :
666
Регистрация :
09.08.2015
Время Альянса
Статус :
Ветеран :
Сообщений :
4070
Награды :
16
Регистрация :
19.07.2013
Цитата _S_k_i_F_ (
)
а что конкретно править?
В логике же написано: anim_global, anim_head - это имена анимаций. Так вот проверяйте подключены ли файлы с такими анимациями к вашей модели Сидоровича и совместимы ли эти анимации с ней в принципе.Цитата _S_k_i_F_ (
)
Может я его не правильно спавню?
all.spawn или скрипт только не сквад.
Пятница, 29.01.2016, 15:31
Статус :
Сообщений :
666
Регистрация :
19.07.2013
Золотой Обоз
Статус :
Опытный :
Сообщений :
1311
Награды :
9
Регистрация :
09.08.2015
denis2000 , спавню через скрипт. А как проверить наличие подключения? Модель Сидора беру из оригинала ЗП либо ЧН - они одинаковы.Добавлено (29.01.2016, 15:40) --------------------------------------------- Вот есть скрипт mob_trader, там все анимки прописаны
---------------------------------------------------------------------------------------------------- -- mob_trader ---------------------------------------------------------------------------------------------------- global_animations = { desk_idle = {"idle","idle_1","palci","zatylok"}, desk_talk = {"idle"}, desk_to_chair_hack = {"idle_spinka"}, desk_to_listen = {"idle_chitaet"}, desk_to_diagonal = {"perehod_0"}, chair_hack_idle = {"idle_2","idle_2_def_0"}, chair_hack_talk = {"idle_2_talk_0","idle_2_talk_1","idle_2_talk_2","idle_2_talk_3"}, chair_hack_to_diagonal = {"idle_2_to_idle_0"}, chair_hack_to_desk = {"spinka_idle"}, compute_idle = {"idle_1_spec_think_0","idle_1_spec_think_1"}, compute_idle_to_diagonal = {"idle_1_to_idle_0"}, diagonal_idle = {"idle_0_def_0","idle_0_spec_click_0","idle_0_spec_scratch_0"}, diagonal_idle_short = {"idle_0_def_0"}, diagonal_talk = {"idle_0_talk_0","idle_0_talk_1","idle_0_talk_2","idle_0_talk_3"}, diagonal_to_chair_hack = {"idle_0_to_idle_2"}, diagonal_to_compute = {"idle_0_to_idle_1"}, diagonal_to_desk = {"perehod_1"}, first_phrase = {"vstuplenie"}, listen_idle = {"chitaet"}, listen_to_desk = {"chitaet_idle"}, hello = {"hello"}, forester_sit = {"sit"}, forester_beard = {"beard_in","beard","beard_out"}, forester_reaction = {"reaction_in","reaction","reaction_out"}, forester_see = {"see_in","see","see_out"}, forester_talk_1 = {"sit_talk_1_in","sit_talk_1","sit_talk_1_out"}, forester_talk_2 = {"sit_talk_2_in","sit_talk_2","sit_talk_2_out"}, forester_talk_3 = {"sit_talk_3_in","sit_talk_3","sit_talk_3_out"}, } head_animations = { forester_talk_1 = {"sit_talk_1_in","sit_talk_1","sit_talk_1_out"}, forester_talk_2 = {"sit_talk_2_in","sit_talk_2","sit_talk_2_out"}, forester_talk_3 = {"sit_talk_3_in","sit_talk_3","sit_talk_3_out"}, forester_reaction = {"reaction_in","reaction","reaction_out"}, normal = {"talk_0","talk_1","talk_4"}, angry = {"talk_3","talk_2","talk_1"}, good = {"talk_glad_0"}, first_phrase = {"vstuplenie_head"}, } ---------------------------------------------------------------------------------------------------- function on_start_tutorial_item_1() if db.trader == nil then return end db.trader:external_sound_start("characters_voice\\scenario\\trader\\trader_tutorial_pda_12") end function on_stop_tutorial_item() if db.trader == nil then return end db.trader:external_sound_stop() end ---------------------------------------------------------------------------------------------------- class "mob_trader" function mob_trader:__init(obj, storage) self.object = obj self.st = storage end function mob_trader:reset_scheme() trader_obj = self.object self.st.signals = {} self.object:set_callback(callback.trader_global_anim_request, self.on_global_anim_request, self ) self.object:set_callback(callback.trader_head_anim_request, self.on_head_anim_request, self ) self.object:set_callback(callback.trader_sound_end, self.on_sound_end, self ) self.object:set_callback(callback.use_object, self.use_callback, self) -- start global animation self.object:set_trader_global_anim(self:select_global_animation()) -- start sound and head animation if (self.st.sound_phrase) then local snd = mob_sound.pick_sound_from_set(self.object, self.st.sound_phrase, {}) self.object:set_trader_sound(snd, self:select_head_animation()); end if self.st.anim_head == nil then self.st.anim_head = "normal" end db.trader = self.object end function mob_trader:use_callback() end function mob_trader:update(delta) if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then return end end --------------------------------------------------------------------------------------------------------------------- function mob_trader:select_global_animation() local anim_set = global_animations[self.st.anim_global] local r = math.random(1, #anim_set) return anim_set[r] end function mob_trader:select_head_animation() -- random select local anim_set = head_animations[self.st.anim_head] local r = math.random(1, #anim_set) return anim_set[r] end --------------------------------------------------------------------------------------------------------------------- function mob_trader:on_global_anim_request() self.st.signals["animation_end"] = true if (not self.st.play_once) then self.object:set_trader_global_anim(self:select_global_animation()) end end function mob_trader:on_head_anim_request() if self.st.anim_head == nil then return end self.object:set_trader_head_anim(self:select_head_animation()); end function mob_trader:on_sound_end() self.st.signals["sound_phrase_end"] = true end --------------------------------------------------------------------------------------------------------------------- function mob_trader:deactivate() self.object:set_callback(callback.trader_global_anim_request, nil ) self.object:set_callback(callback.trader_head_anim_request, nil ) self.object:set_callback(callback.trader_sound_end, nil ) self.object:set_callback(callback.use_object, nil ) self.st.signals = {} db.trader = nil end --------------------------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) printf("DEBUG: add_to_binder: npc:name()='%s', scheme='%s', section='%s'", npc:name(), scheme, section) local new_action = mob_trader(npc, storage) -- Зарегистрировать все actions, в которых должен быть вызван метод reset_scheme при изменении настроек схемы: xr_logic.subscribe_action_for_events(npc, storage, new_action) end function set_scheme(npc, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) st.anim_global = utils.cfg_get_string(ini, section, "anim_global", npc, true, "") st.can_talk = utils.cfg_get_bool(ini, section, "can_talk", npc, false, true) st.tip_text = utils.cfg_get_string(ini, section, "tip_text", npc, false, "", "character_use") if st.tip_text == nil then st.tip_text = "" end npc:set_tip_text(st.tip_text) if (ini:line_exist( section, "sound_phrase")) then st.anim_head = utils.cfg_get_string(ini, section, "anim_head", npc, false, "") st.sound_phrase = utils.cfg_get_string(ini, section, "sound_phrase", npc, false, "") else st.anim_head = nil st.sound_phrase = nil end --' check if play once animation st.play_once = false if (ini:line_exist( section, "on_signal")) then local str = utils.cfg_get_string(ini, section, "on_signal", npc, false, "") local par = utils.parse_params(str) if par[1] == "animation_end" then st.play_once = true end end if st.can_talk == true then npc:enable_talk() else npc:disable_talk() end end
Проблема снята, старый хрыч на своем законном месте denis2000 , спасибо за участие!
Сообщение отредактировал _S_k_i_F_ - Пятница, 29.01.2016, 18:19
Пятница, 29.01.2016, 15:40
Статус :
Сообщений :
666
Регистрация :
09.08.2015
Статус :
Гость :
Сообщений :
48
Награды :
9
Регистрация :
21.01.2015
какая именно функция отвечает за отбирание денег на барахолке в момент ограбления бандитами в ЧН?Добавлено (29.01.2016, 17:09) --------------------------------------------- пытаюсь найти эту правку в моде Faction Combat 2.2 для OGSM 1.8 CE
Пятница, 29.01.2016, 17:09
Статус :
Сообщений :
666
Регистрация :
21.01.2015
Darkest Time
Статус :
Бывалый :
Сообщений :
874
Награды :
9
Регистрация :
13.04.2015
Возможно ли реализовать в ТЧ субтитры? Например, игроку ГГ что-то говорит и внизу по центру выводится текст его реплики. Опционально, чтобы можно было включить или выключить в настройках. Подскажите пожалуйста.
Сообщение отредактировал Nikita_Kling - Пятница, 29.01.2016, 18:11
Пятница, 29.01.2016, 18:11
Статус :
Сообщений :
666
Регистрация :
13.04.2015
Золотой Обоз
Статус :
Опытный :
Сообщений :
1311
Награды :
9
Регистрация :
09.08.2015
Перенес в ЗП гражданского зомби по уроку на Сигероусе, везде где надо зарегистрировал монстра, заспавнил через сквад, но при входе в зону алайфа смарта, где зомбики должны быть - вылет stack trace: В чем может быть причина? Зараннее спасибо! Вот конфиг зомби
[m_zombie_e]:monster_base GroupControlSection = spawn_group SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_witches_galantine,zone_burning_fuzz1,zone_mincer,zone_gravi_zone ;$spawn = "monsters\zombies\zombie_base" ; 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 = 400 ; option for ALife Simulator MinSpeed = 1.0 ; option for ALife Simulator MaxSpeed = 5.0 ; option for ALife Simulator going_speed = 2;4.5 ; option for ALife Simulator search_speed = 1.5 ; option for ALife Simulator visual = monsters\zombi\zombi_weak corpse_visual = monsters\zombi\zombi_weak icon = ui_npc_monster_zombie MaxHealthValue = 100 ; range [0..200] DynamicObjectsCount = 32 smart_terrain_choose_interval = 00:15:00 ef_creature_type = 3 ; option for evaluation functions ef_weapon_type = 1 ef_detector_type = 1 panic_threshold = 0.1 Spawn_Inventory_Item_Section = item_zombie_hand Spawn_Inventory_Item_Probability = 0;1 character_use = mutant_character_use impuls_abscission = 250 bone_impuls_abscission = bip01_spine Spawn_Drop_Item_Probability = 1 Spawn_Max_Item = 2 cform = skeleton ; collision class class = SM_ZOMBI ; AI class 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 ph_box0_center = 0.0, 0.9, 0.0 ph_box0_size = 0.35, 0.9, 0.35 ph_box1_center = 0.0, 0.6, 0.0 ph_box1_size = 0.40, 0.6, 0.40 ph_crash_speed_min = 10 ph_crash_speed_max = 30 ph_collision_damage_factor = 0.1 ph_mass = 80 destroyed_vis_name = physics\Dead_Body\trupik_crash ;--------------------------------------------------------------------- ph_skeleton_airr_lin_factor = 1.1 ;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 = 5.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода) ph_skeleton_ddelay = 5.0 ;Время изменения значения трения в суставе с момента создания шелла, сек ph_skel_fatal_impulse_factor = 8.0 ph_after_death_velocity_factor= 0.75 ph_skel_shot_up_factor = 0.25 ;--------------------------------------------------------------------- SoundThreshold = 0.06 ; range [0..1] eye_fov = 80 eye_range = 50 max_hear_dist = 30 ; speed factors linear | angular_real | angular_path | min | max Velocity_Stand = 0, 1.4, 1.4, 1, 1 Velocity_WalkFwdNormal = 0.9, 0.6, 0.6, 0.02, 2.0 Velocity_RunFwdNormal = 1.7, 3.0, 3.0, 0.4, 1 Velocity_WalkFwdDamaged = 0.7, 3.0, 0.8, 0.2, 2.0 Velocity_RunFwdDamaged = 1.5, 3.0, 3.0, 0.2, 1 Velocity_Drag = 1.0, 3.0, 3.0, 1, 1 Velocity_Steal = 1.5, 3.0, 3.0, 1, 1 ; acceleration Accel_Generic = 1.5 Accel_Calm = 2.5 Accel_Aggressive = 7.5 ;attack parameters MinAttackDist = 1.7 ;0.5 MaxAttackDist = 2.3 ;3.8 Melee_Rotation_Factor = 1.6 as_min_dist = 1.4 as_step = 0.1 DayTime_Begin = 0 ; эрўрыр фэ фы ьюэёЄЁр DayTime_End = 21 ; ъюэхЎ фэ фы ьюэёЄЁр Min_Satiety = 0.4 ; ьшэ. эюЁьр ёvЄюёЄш (ьхэ№°х - єцх уюыюфэvщ) Max_Satiety = 1.0 ; ьръё. эюЁьр ёvЄюёЄш (сюы№°х - юўхэ№ ёvЄvщ) distance_to_corpse = 1.2 ; фшёЄ. фю ЄЁєяр, яЁш ъюЄюЁющ юэ яхЁхїюфшЄ т ёюёЄю эшх хфv min_view_distance = 0.7 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 terrain = zombie_terrain hit_type = wound ;entity condition ; entity condition satiety_v = 0.00001 ;0.01 ;скорость уменьшения сытости со временем radiation_v = 0.00001 ;0.004 ;скорость уменьшения радиации satiety_power_v = 0.01 ;0.01 ;увеличение силы при уменьшении сытости satiety_health_v = 0.005 ;0.03 ;увеличение здоровья при уменьшении сытости satiety_critical = -1.0 ;0.25 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.01 ;0.006 ;уменьшение здоровья при воздействии радиации morale_v = 0.01 ;скорость восстановления морали health_hit_part = 1.0 ;0.8 ;процент хита, уходящий на отнимание здоровья power_hit_part = 1.0 ;0.9 ;процент хита, уходящий на отнимание силы psy_health_v = 0.1 ;скорость восстановления psy-здоровья immunities_sect = zombie_immunities ;открытые раны bleeding_v = 0 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 0.01 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду) min_wound_size = 0.01 sleep_health = 1.0 ;1.5 ;ъю¤ЇЇшЎшхэЄv ёъюЁюёЄхщ шчьхэхэш ярЁрьхЄЁют тю тЁхь ёэр sleep_power = 1.0 ;1.5 sleep_satiety = 1.0 ;0.8 sleep_radiation = 1.0 ;1.1 sleep_psy_health = 1.0 eat_freq = 5.0 ; ўрёЄюЄр єъєёют т ёхъ eat_slice = 0.01 ; єтхышўхэшх ёvЄюёЄш яЁш 1 єъєёх eat_slice_weight = 10.0 ; єьхэ№°хэшх хфv є ЄЁєяр satiety_threshold = 0.5 ; below this value monster fill hunger ; Morale Morale_Hit_Quant = 0.001 Morale_Attack_Success_Quant = 0.1 Morale_Take_Heart_Speed = 0.1 Morale_Despondent_Speed = 0.1 Morale_Stable_Speed = 0.01 Morale_Despondent_Threashold = 0.1 sound_idle = monsters\zombie\zombie_idle_ sound_eat = monsters\zombie\zombie_eat_ sound_aggressive = monsters\zombie\zombie_attack_ sound_attack_hit = monsters\zombie\zombie_attack_hit_ sound_take_damage = monsters\zombie\zombie_take_damage_ sound_die = monsters\zombie\zombie_die_ sound_threaten = monsters\biting\def_ sound_landing = monsters\biting\def_ sound_steal = monsters\biting\def_ sound_panic = monsters\zombie\zombie_attack_ sound_growling = monsters\biting\def_ sound_die_in_anomaly = monsters\zombie\zombie_die_ killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE idle_sound_delay = 20000 eat_sound_delay = 3000 attack_sound_delay = 24000 sound_distant_idle = monsters\zombie\zombie_idle_ distant_idle_sound_delay = 80000 distant_idle_sound_range = 100.0 DamagedThreshold = 0.5 critical_wound_threshold = -1 critical_wound_decrease_quant = 0. FakeDeathCount = 4 ; max count of fake death StartFakeDeathHealthThreshold = 0.6 material = creatures\medium DynamicObjectsCount = 32 squad_attack_algorithm = 1 LegsCount = 2 attack_effector = m_zombie_attack_effector step_params = m_zombie_step_params attack_params = m_zombie_attack_params damage = m_zombie_damage ;species of monster species = zombie [m_zombie_damage] ;bone_name = <hit_scale>,-1,<wound_scale> ;<hit_scale> - коэфф. изменения хита (уменьшения здоровья) ;<wound_scale> - коэфф. изменения величины открытой раны default = 1.0, -1, 0.01 bip01_pelvis = 1.0, -1, 0.01 bip01_spine = 1.0, -1, 0.01 bip01_spine1 = 1.0, -1, 0.01 bip01_neck = 1.0, -1, 0.01 bip01_head = 2.0, -1, 0.01 [zombie_terrain] 255,000,255,255 [m_zombie_attack_params] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.25, 100, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.20, 100, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.15, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.20, 180, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 [m_zombie_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.255,0.0,0.0 color_gray = 0.333,0.333,0.333 color_add = 0,0,0 time = 0.4 time_attack = 0.10 ; fade in time_release = 0.35 ; fade out ; camera effects ce_time = 0.5 ;time ce_amplitude = -15.0 ce_period_number = 1.5 ;2.0 ce_power = 1.5 ;0.7 ; power [m_zombie_step_params] ;--------------------------------------------------------------------------- ; anim | Cycles | time1 | power1 | time2 | power2 | ;--------------------------------------------------------------------------- stand_walk_fwd_0 = 1, 0.01, 1, 0.25, 0.7, stand_walk_dmg_0 = 1, 0.01, 1, 0.25, 0.7, stand_run_fwd_0 = 1, 0.01, 1, 0.25, 0.6, stand_run_dmg_0 = 1, 0.01, 1, 0.25, 0.6, ;=========================================================================== ; IMMUNITIES ;=========================================================================== [zombie_immunities] burn_immunity = 0.3 ;коэффициенты иммунитета strike_immunity = 0.8 shock_immunity = 0.8 wound_immunity = 0.8;1 radiation_immunity = 0.0 ;0.5 telepatic_immunity = 1.0 chemical_burn_immunity = 0.3 explosion_immunity = 0.5 fire_wound_immunity = 0.08 [zombie_weak]:m_zombie_e $spawn = "monsters\zombies\zombie_01_weak" visual = monsters\zombi\zombi_weak panic_threshold = 0.5 rank = 0 spec_rank = weak community = zombie FakeDeathCount = 2 ; max count of fake death StartFakeDeathHealthThreshold = 0.4 immunities_sect = zombie_immunities_weak attack_params = zombie_attack_params_weak [zombie_immunities_weak] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.20 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.08 [zombie_attack_params_weak] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.15, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.15, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.15, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.15, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_normal]:m_zombie_e $spawn = "monsters\zombies\zombie_02_normal" visual = monsters\zombi\zombi_norm corpse_visual = monsters\zombi\zombi_norm panic_threshold = 0.2 rank = 255 spec_rank = normal community = zombie FakeDeathCount = 4 ; max count of fake death StartFakeDeathHealthThreshold = 0.6 immunities_sect = zombie_immunities_normal attack_params = zombie_attack_params_normal [zombie_immunities_normal] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.10 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.06 [zombie_attack_params_normal] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.35, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.35, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.35, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.35, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_strong]:m_zombie_e $spawn = "monsters\zombies\zombie_03_strong" visual = monsters\zombi\zombi_strong corpse_visual = monsters\zombi\zombi_strong panic_threshold = 0.05 rank = 255 spec_rank = strong community = zombie FakeDeathCount = 6 ; max count of fake death StartFakeDeathHealthThreshold = 0.8 immunities_sect = zombie_immunities_strong attack_params = zombie_attack_params_strong [zombie_immunities_strong] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.05 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.04 [zombie_attack_params_strong] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.50, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.50, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.50, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.50, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_immortal]:zombie_strong $spawn = "monsters\zombies\zombie_immortal" visual = monsters\zombi\zombi_trup panic_threshold = 0.05 vision_free_section = zombie_vision_free vision_danger_section = zombie_vision_danger [zombie_vision_free] min_view_distance = 0.5 ;-- коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ;-- коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 80.0 ;-- значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.2 time_quant = 0.005 decrease_value = 0.01 ;-- значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 1.0 luminocity_factor = 0.7 ;-- фактор освещения (только для Актёра) transparency_threshold = 0.4 [zombie_vision_danger] min_view_distance = 0.7 ;-- коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ;-- коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 40.0 ;-- значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.2 time_quant = 0.001 decrease_value = 0.01 ;-- значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 1.0 luminocity_factor = 0.7 ;-- фактор освещения (только для Актёра) transparency_threshold = 0.4 [zombie_protections] skin_armor = 0.1 hit_fraction_monster = 0.5
Пятница, 29.01.2016, 19:46
Статус :
Сообщений :
666
Регистрация :
09.08.2015
Время Альянса
Статус :
Ветеран :
Сообщений :
4070
Награды :
16
Регистрация :
19.07.2013
_S_k_i_F_ , В инструкции сказано: Цитата
Добавив в конец секции [m_zombie_e]: vision_free_section = zombie_vision_free vision_danger_section = zombie_vision_danger.....
А вы куда добавили?
Пятница, 29.01.2016, 20:52
Статус :
Сообщений :
666
Регистрация :
19.07.2013
Золотой Обоз
Статус :
Опытный :
Сообщений :
1311
Награды :
9
Регистрация :
09.08.2015
denis2000 , переделал так, все равно безлоговый вылет
[m_zombie_e]:monster_base GroupControlSection = spawn_group SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_witches_galantine,zone_burning_fuzz1,zone_mincer,zone_gravi_zone ;$spawn = "monsters\zombies\zombie_base" ; 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 = 400 ; option for ALife Simulator MinSpeed = 1.0 ; option for ALife Simulator MaxSpeed = 5.0 ; option for ALife Simulator going_speed = 2;4.5 ; option for ALife Simulator search_speed = 1.5 ; option for ALife Simulator visual = monsters\zombi\zombi_weak corpse_visual = monsters\zombi\zombi_weak icon = ui_npc_monster_zombie MaxHealthValue = 100 ; range [0..200] DynamicObjectsCount = 32 smart_terrain_choose_interval = 00:15:00 ef_creature_type = 3 ; option for evaluation functions ef_weapon_type = 1 ef_detector_type = 1 panic_threshold = 0.1 Spawn_Inventory_Item_Section = item_zombie_hand Spawn_Inventory_Item_Probability = 0;1 character_use = mutant_character_use impuls_abscission = 250 bone_impuls_abscission = bip01_spine Spawn_Drop_Item_Probability = 1 Spawn_Max_Item = 2 cform = skeleton ; collision class class = SM_ZOMBI ; AI class 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 ph_box0_center = 0.0, 0.9, 0.0 ph_box0_size = 0.35, 0.9, 0.35 ph_box1_center = 0.0, 0.6, 0.0 ph_box1_size = 0.40, 0.6, 0.40 ph_crash_speed_min = 10 ph_crash_speed_max = 30 ph_collision_damage_factor = 0.1 ph_mass = 80 destroyed_vis_name = physics\Dead_Body\trupik_crash ;--------------------------------------------------------------------- ph_skeleton_airr_lin_factor = 1.1 ;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 = 5.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода) ph_skeleton_ddelay = 5.0 ;Время изменения значения трения в суставе с момента создания шелла, сек ph_skel_fatal_impulse_factor = 8.0 ph_after_death_velocity_factor= 0.75 ph_skel_shot_up_factor = 0.25 ;--------------------------------------------------------------------- SoundThreshold = 0.06 ; range [0..1] eye_fov = 80 eye_range = 50 max_hear_dist = 30 ; speed factors linear | angular_real | angular_path | min | max Velocity_Stand = 0, 1.4, 1.4, 1, 1 Velocity_WalkFwdNormal = 0.9, 0.6, 0.6, 0.02, 2.0 Velocity_RunFwdNormal = 1.7, 3.0, 3.0, 0.4, 1 Velocity_WalkFwdDamaged = 0.7, 3.0, 0.8, 0.2, 2.0 Velocity_RunFwdDamaged = 1.5, 3.0, 3.0, 0.2, 1 Velocity_Drag = 1.0, 3.0, 3.0, 1, 1 Velocity_Steal = 1.5, 3.0, 3.0, 1, 1 ; acceleration Accel_Generic = 1.5 Accel_Calm = 2.5 Accel_Aggressive = 7.5 ;attack parameters MinAttackDist = 1.7 ;0.5 MaxAttackDist = 2.3 ;3.8 Melee_Rotation_Factor = 1.6 as_min_dist = 1.4 as_step = 0.1 DayTime_Begin = 0 ; эрўрыр фэ фы ьюэёЄЁр DayTime_End = 21 ; ъюэхЎ фэ фы ьюэёЄЁр Min_Satiety = 0.4 ; ьшэ. эюЁьр ёvЄюёЄш (ьхэ№°х - єцх уюыюфэvщ) Max_Satiety = 1.0 ; ьръё. эюЁьр ёvЄюёЄш (сюы№°х - юўхэ№ ёvЄvщ) distance_to_corpse = 1.2 ; фшёЄ. фю ЄЁєяр, яЁш ъюЄюЁющ юэ яхЁхїюфшЄ т ёюёЄю эшх хфv min_view_distance = 0.7 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 terrain = zombie_terrain hit_type = wound ;entity condition ; entity condition satiety_v = 0.00001 ;0.01 ;скорость уменьшения сытости со временем radiation_v = 0.00001 ;0.004 ;скорость уменьшения радиации satiety_power_v = 0.01 ;0.01 ;увеличение силы при уменьшении сытости satiety_health_v = 0.005 ;0.03 ;увеличение здоровья при уменьшении сытости satiety_critical = -1.0 ;0.25 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.01 ;0.006 ;уменьшение здоровья при воздействии радиации morale_v = 0.01 ;скорость восстановления морали health_hit_part = 1.0 ;0.8 ;процент хита, уходящий на отнимание здоровья power_hit_part = 1.0 ;0.9 ;процент хита, уходящий на отнимание силы psy_health_v = 0.1 ;скорость восстановления psy-здоровья immunities_sect = zombie_immunities ;открытые раны bleeding_v = 0 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 0.01 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду) min_wound_size = 0.01 sleep_health = 1.0 ;1.5 ;ъю¤ЇЇшЎшхэЄv ёъюЁюёЄхщ шчьхэхэш ярЁрьхЄЁют тю тЁхь ёэр sleep_power = 1.0 ;1.5 sleep_satiety = 1.0 ;0.8 sleep_radiation = 1.0 ;1.1 sleep_psy_health = 1.0 eat_freq = 5.0 ; ўрёЄюЄр єъєёют т ёхъ eat_slice = 0.01 ; єтхышўхэшх ёvЄюёЄш яЁш 1 єъєёх eat_slice_weight = 10.0 ; єьхэ№°хэшх хфv є ЄЁєяр satiety_threshold = 0.5 ; below this value monster fill hunger ; Morale Morale_Hit_Quant = 0.001 Morale_Attack_Success_Quant = 0.1 Morale_Take_Heart_Speed = 0.1 Morale_Despondent_Speed = 0.1 Morale_Stable_Speed = 0.01 Morale_Despondent_Threashold = 0.1 sound_idle = monsters\zombie\zombie_idle_ sound_eat = monsters\zombie\zombie_eat_ sound_aggressive = monsters\zombie\zombie_attack_ sound_attack_hit = monsters\zombie\zombie_attack_hit_ sound_take_damage = monsters\zombie\zombie_take_damage_ sound_die = monsters\zombie\zombie_die_ sound_threaten = monsters\biting\def_ sound_landing = monsters\biting\def_ sound_steal = monsters\biting\def_ sound_panic = monsters\zombie\zombie_attack_ sound_growling = monsters\biting\def_ sound_die_in_anomaly = monsters\zombie\zombie_die_ killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE idle_sound_delay = 20000 eat_sound_delay = 3000 attack_sound_delay = 24000 sound_distant_idle = monsters\zombie\zombie_idle_ distant_idle_sound_delay = 80000 distant_idle_sound_range = 100.0 DamagedThreshold = 0.5 critical_wound_threshold = -1 critical_wound_decrease_quant = 0. FakeDeathCount = 4 ; max count of fake death StartFakeDeathHealthThreshold = 0.6 material = creatures\medium DynamicObjectsCount = 32 squad_attack_algorithm = 1 LegsCount = 2 attack_effector = m_zombie_attack_effector step_params = m_zombie_step_params attack_params = m_zombie_attack_params damage = m_zombie_damage ;species of monster species = zombie [m_zombie_damage] ;bone_name = <hit_scale>,-1,<wound_scale> ;<hit_scale> - коэфф. изменения хита (уменьшения здоровья) ;<wound_scale> - коэфф. изменения величины открытой раны default = 1.0, -1, 0.01 bip01_pelvis = 1.0, -1, 0.01 bip01_spine = 1.0, -1, 0.01 bip01_spine1 = 1.0, -1, 0.01 bip01_neck = 1.0, -1, 0.01 bip01_head = 2.0, -1, 0.01 [zombie_terrain] 255,000,255,255 [m_zombie_attack_params] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.25, 100, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.20, 100, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.15, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.20, 180, 0.0, 1.0, 0.0, -0.6, 0.6, -0.6, 0.6, 2.0 [m_zombie_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.255,0.0,0.0 color_gray = 0.333,0.333,0.333 color_add = 0,0,0 time = 0.4 time_attack = 0.10 ; fade in time_release = 0.35 ; fade out ; camera effects ce_time = 0.5 ;time ce_amplitude = -15.0 ce_period_number = 1.5 ;2.0 ce_power = 1.5 ;0.7 ; power [m_zombie_step_params] ;--------------------------------------------------------------------------- ; anim | Cycles | time1 | power1 | time2 | power2 | ;--------------------------------------------------------------------------- stand_walk_fwd_0 = 1, 0.01, 1, 0.25, 0.7, stand_walk_dmg_0 = 1, 0.01, 1, 0.25, 0.7, stand_run_fwd_0 = 1, 0.01, 1, 0.25, 0.6, stand_run_dmg_0 = 1, 0.01, 1, 0.25, 0.6, ;=========================================================================== ; IMMUNITIES ;=========================================================================== [zombie_immunities] burn_immunity = 0.3 ;коэффициенты иммунитета strike_immunity = 0.8 shock_immunity = 0.8 wound_immunity = 0.8;1 radiation_immunity = 0.0 ;0.5 telepatic_immunity = 1.0 chemical_burn_immunity = 0.3 explosion_immunity = 0.5 fire_wound_immunity = 0.08 vision_free_section = zombie_vision_free vision_danger_section = zombie_vision_danger [zombie_vision_free] min_view_distance = 0.5 ;-- коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ;-- коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 80.0 ;-- значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.2 time_quant = 0.005 decrease_value = 0.01 ;-- значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 1.0 luminocity_factor = 0.7 ;-- фактор освещения (только для Актёра) transparency_threshold = 0.4 [zombie_vision_danger] min_view_distance = 0.7 ;-- коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ;-- коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 40.0 ;-- значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.2 time_quant = 0.001 decrease_value = 0.01 ;-- значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 1.0 luminocity_factor = 0.7 ;-- фактор освещения (только для Актёра) transparency_threshold = 0.4 [zombie_protections] skin_armor = 0.1 hit_fraction_monster = 0.5 [zombie_weak]:m_zombie_e $spawn = "monsters\zombies\zombie_01_weak" visual = monsters\zombi\zombi_weak panic_threshold = 0.5 rank = 0 spec_rank = weak community = zombie FakeDeathCount = 2 ; max count of fake death StartFakeDeathHealthThreshold = 0.4 immunities_sect = zombie_immunities_weak attack_params = zombie_attack_params_weak [zombie_immunities_weak] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.20 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.08 [zombie_attack_params_weak] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.15, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.15, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.15, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.15, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_normal]:m_zombie_e $spawn = "monsters\zombies\zombie_02_normal" visual = monsters\zombi\zombi_norm corpse_visual = monsters\zombi\zombi_norm panic_threshold = 0.2 rank = 255 spec_rank = normal community = zombie FakeDeathCount = 4 ; max count of fake death StartFakeDeathHealthThreshold = 0.6 immunities_sect = zombie_immunities_normal attack_params = zombie_attack_params_normal [zombie_immunities_normal] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.10 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.06 [zombie_attack_params_normal] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.35, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.35, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.35, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.35, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_strong]:m_zombie_e $spawn = "monsters\zombies\zombie_03_strong" visual = monsters\zombi\zombi_strong corpse_visual = monsters\zombi\zombi_strong panic_threshold = 0.05 rank = 255 spec_rank = strong community = zombie FakeDeathCount = 6 ; max count of fake death StartFakeDeathHealthThreshold = 0.8 immunities_sect = zombie_immunities_strong attack_params = zombie_attack_params_strong [zombie_immunities_strong] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 0.05 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.55 fire_wound_immunity = 0.04 [zombie_attack_params_strong] ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- ;right hand strike stand_attack_0 = 0.30, 0.50, 100, 0.0, 1.0, 0.0, -0.3, 1.0, -0.6, 0.6, 2.0 ;left hand strike stand_attack_1 = 0.35, 0.50, 100, 0.0, 1.0, 0.0, -1.8, 0.6, -0.6, 0.6, 2.0 ;left hand strike2 stand_attack_2 = 0.30, 0.50, 120, 0.0, 1.0, 0.0, -0.6, 0.6, -1.0, 1.0, 2.0 ;left hand strike3 stand_attack_3 = 0.30, 0.50, 180, 0.0, 1.0, 0.0, -1.0, 0.3, -0.6, 0.6, 2.0 [zombie_immortal]:zombie_strong $spawn = "monsters\zombies\zombie_immortal" visual = monsters\zombi\zombi_trup panic_threshold = 0.05
Я когда кота переносил, сначала не туда поставил vision_free_section = vision_danger_section = и тогда вылетело с отсылкой на эти секции. А сейчас без лога. Кот и излом работают нормально.
Пятница, 29.01.2016, 20:57
Статус :
Сообщений :
666
Регистрация :
09.08.2015