Форум Игромании
 
Регистрация
Справка
Пользователи Календарь Сообщения за день

"Пикник на обочине" Раздел по популярному проекту S.T.A.L.K.E.R.

Ответ
 
Опции темы
Старый 13.04.2007, 21:44   #1
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
S.T.A.L.K.E.R. - Создание модов


Мануал по созданию модификаций для начинающих
Часть 1.
Часть 2.

Что необходимо:


Статьи участников:
Скрытый текст:
А
Активация артефактов
В
В Зоне только день
В Зоне только день способ 2
Вывод координат на екран
Выдача Волком оружия
Выдача оружия в ЧН
Д
Добавление транспорта
Динамические диалоги
Добавление новых локаций в ЧН и ЗП
И
Изменение первоначального инвентаря у Меченого(1-й урок читерства)
Имитация намокания дороги во время дождя
К
Как менять ломкость брони
Качание оружия при хотьбе
М
Материал про: активацию артефактов, добавление статей в ПДА, редактирование НПС, создание новой группировки, вычисление координат
Н
Настройка AI Wrapper от bardak'a
Настройка конвертора bardak'a
NPC покупают и продают оружие
Носимый вес
О
Описание Actor.ltx
П
Параметры оружия с описанием
Прорисовка уровня и изменение дистанции видимости
Прототип динамических новостей
Р
Работа с acdc от Bardak-a
Размер раны
Редактирование мультиплеерных карт, для последующего их запуска в сингле
С
Создание механика
Создание уровня для сингла
Создание нового оружия
Создание скриптовых роликов
Создание квеста
Создание нового НПС путём редактрирования all.spawn
Создание HUD модели оружия
Спавн предметов в инвентарь (2-й урок читерства)
Свойства костюмов
Cпавн монстра
Т
Транспорт в игре
У
Уменьшение сытости ГГ


Работы участников:

Разрабатываемые моды:
Скрытый текст:
antdiablon, Минор
Nacek 2


Полезные ссылки

Мод-портал. - Официальная вики по модам для сталкера (Не обновляется)
S.T.A.L.K.E.R. Inside Wiki. - Фанатская вики по модострою для сталкера.

X-Ray SDK. Ныне все вопросы с ним обсуждаются тут.
S.T.A.L.K.E.R. Universal Extractor.


Внимание: если Вы новичок, то сперва ознакомьтесь с мануалом по созданию модификаций для начинающих
При вылетах также прилагайте лог ошибки!!!

Последний раз редактировалось DoctorWagner; 26.02.2023 в 22:25.
Jesh вне форума  
Ответить с цитированием
Старый 24.07.2011, 17:44   #3481
Юзер
 
Аватар для S.T.ALK.E.R.
 
Регистрация: 27.03.2008
Адрес: г.Волгоград
Сообщений: 139
Репутация: 25 [+/-]
antdiablon, ну раз взял Hud с ЗП то и конфиг смотри с ЗП.
S.T.ALK.E.R. вне форума  
Отправить сообщение для S.T.ALK.E.R. с помощью Skype™ Ответить с цитированием
Старый 24.07.2011, 17:52   #3482
Игрок
 
Аватар для MBM98
 
Регистрация: 14.07.2010
Адрес: Между складками Логвинова
Сообщений: 890
Репутация: 100 [+/-]
S.T.ALK.E.R., там все другое.
__________________
Ice blue silver sky
Fades into grey
To a grey hope that omens to be
Starless and bible black
MBM98 вне форума  
Ответить с цитированием
Старый 24.07.2011, 18:09   #3483
Юзер
 
Аватар для S.T.ALK.E.R.
 
Регистрация: 27.03.2008
Адрес: г.Волгоград
Сообщений: 139
Репутация: 25 [+/-]
Так не скопировать вставить а принцип понять...
S.T.ALK.E.R. вне форума  
Отправить сообщение для S.T.ALK.E.R. с помощью Skype™ Ответить с цитированием
Старый 24.07.2011, 19:51   #3484
Игрок
 
Аватар для PROGRAMMER X
 
Регистрация: 18.07.2010
Сообщений: 532
Репутация: 13 [+/-]
S.T.ALK.E.R., Тоесть ты хочешь сказать, что нам всем нужно создать свою команду да? И нужно сайт создать как бы офф? Или нет?
Ну впринцыпе я за. было бы круто.
__________________
www.sbm.ucoz.ru
Оф. сайт моего мода для Сталкер ТЧ.
PROGRAMMER X вне форума  
Ответить с цитированием
Старый 24.07.2011, 22:26   #3485
Юзер
 
Аватар для S.T.ALK.E.R.
 
Регистрация: 27.03.2008
Адрес: г.Волгоград
Сообщений: 139
Репутация: 25 [+/-]
PROGRAMMER X, Я предлагаю свои кандидатуры предложить мне в личку до следующего воскресенья. Нужны все, но впервую очередь сценаристы(Сюжет кто-то же должен писать), затем художники(кто-то же должен создавать атмосферу, рисовать скетчи новых персонажей\монстров\подземелий...), моделлеры, текстурщики, аниматоры(кто-то же должен это всё создать), мапперы(кто-то же должен всё это собрать), скриптеры\конфигеры, а это те кто вдохнёт жизнь в проект...

Если ты за то пиши в личку кто ты и что умеешь(желательно портфолио: я моделлер я вот это это смоделировал)
S.T.ALK.E.R. вне форума  
Отправить сообщение для S.T.ALK.E.R. с помощью Skype™ Ответить с цитированием
Старый 25.07.2011, 00:23   #3486
Игрок
 
Аватар для venom9875
 
Регистрация: 07.03.2009
Адрес: Галактика Млечный Путь
Сообщений: 615
Репутация: 169 [+/-]
Earth2Space, если есть такая, можно подкинуть? Я где-то видел информацию, но там говорилось про бубен и надежду на удачу... А мне этого не надо.

Если есть адаптация под 6-патч хотя бы таймера, можете подсказать, где её найти?
__________________
Кому вообще какая разница, что думают другие, а? Загляните в свое сердце и делайте то, что поможет стать вам счастливее.

Роберт Келсо
venom9875 вне форума  
Отправить сообщение для venom9875 с помощью ICQ Ответить с цитированием
Старый 25.07.2011, 04:04   #3487
Гейммастер
 
Аватар для Earth2Space
 
Регистрация: 20.01.2009
Адрес: Хабаровск
Сообщений: 11,699
Репутация: 1136 [+/-]
venom9875, вот, никаких бубнов, всё "официально" и работает.
__________________
ASUS ROG Phone
ZTE Axon 7
Nokia Lumia 920
Earth2Space на форуме  
Отправить сообщение для Earth2Space с помощью ICQ Отправить сообщение для Earth2Space с помощью Skype™ Ответить с цитированием
Старый 25.07.2011, 08:25   #3488
Игрок
 
Аватар для MBM98
 
Регистрация: 14.07.2010
Адрес: Между складками Логвинова
Сообщений: 890
Репутация: 100 [+/-]
Где находится конфиг окошка с количеством НПС возле ГГ?
__________________
Ice blue silver sky
Fades into grey
To a grey hope that omens to be
Starless and bible black
MBM98 вне форума  
Ответить с цитированием
Старый 26.07.2011, 01:32   #3489
Игрок
 
Аватар для venom9875
 
Регистрация: 07.03.2009
Адрес: Галактика Млечный Путь
Сообщений: 615
Репутация: 169 [+/-]
Все! Решил проблему с таймерами и прочими прибамбасами... На чистую игру динамические новости без таймеров не поставить - это однозначно, поскольку даже после указанного вами лимита в фашем скрипте этот ****й биндер из скрипта bind_stalker обновляет сразу несколько сообщений, а не одно.

В общем, если у вас лицензия ТЧ и версия её 1.0006, советую отчекрыжить функции таймеров из того же скрипта amk.sсript из мода OGSM, причем чтобы выдернуть его из папки мода, нужно и соответствующую настройку поставить - для версии 1.0006.

Выдернул функции таймера, втавил ещё необходимые функции, поставил свой таймер на динамические новости - и работает!

Кстати, Earth2Space, есть один такой траблик - на этой странице с бубном в описании ссылки все битые, все необходимые для адаптации файлы уже удалены.
__________________
Кому вообще какая разница, что думают другие, а? Загляните в свое сердце и делайте то, что поможет стать вам счастливее.

Роберт Келсо
venom9875 вне форума  
Отправить сообщение для venom9875 с помощью ICQ Ответить с цитированием
Старый 26.07.2011, 12:52   #3490
Игрок
 
Аватар для PROGRAMMER X
 
Регистрация: 18.07.2010
Сообщений: 532
Репутация: 13 [+/-]
Винtorez, Спасибо за скрипт логики. вроде сработало. сделал так:
Скрытый текст:

Скрытый текст:

Только анимация потом не повторяется, когда к нему подойдешь.
Еще вопрос назови названия всех анимаций которые можно использовать. Тут например задействована анимация sit_ass, какие есть еще? И можно этому НПС дать собственное имя? Он же вроде как клон?
__________________
www.sbm.ucoz.ru
Оф. сайт моего мода для Сталкер ТЧ.

Последний раз редактировалось PROGRAMMER X; 26.07.2011 в 13:03.
PROGRAMMER X вне форума  
Ответить с цитированием
Старый 26.07.2011, 13:29   #3491
Юзер
 
Аватар для Винtorez
 
Регистрация: 29.09.2010
Адрес: У меня дома
Сообщений: 208
Репутация: 20 [+/-]
Earth2Space, лога нет.
PROGRAMMER X-
Скрытый текст:
SoC. Анимации NPC

Недавно решил поэкспериментировать с анимками НПС, и теперь выкладываю результаты моих опытов над "людьми". Разумеется, опытные модмейкеры все это давно знают – поэтому материал предназначен для новичков, которые еще не освоили как прописывать неписям разные прикольные анимки, а заодно и озвучку через логику. Все анимки взяты из файла state_lib. script. Анимки, которые имеются в движке, но не вписаны в указанный файл, не рассматриваются. Это тема для отдельной статьи. Озвучка взята из файла sound_script (папка misc). Конечно, хотелось использовать и звуковые темы не вписанные в этот файл, но имеющиеся в папке sounds - но с этим еще надо разобраться.
[править]
Часть первая.

Вся изложенная ниже схема является единым целым и ее можно ставить в ltx –ный файл логики любому вашему НПС целиком. Она будет зациклена и повторяться по кругу если кое-где поставить другие варианты перехода от одной ремарки к другой.
[logic]
active = remark@base
danger = danger_condition
meet = meet

[remark@base]
anim = hello_wpn
no_move = true
target = actor
meet = meet
on_actor_dist_le = 2| remark@sit

[meet]
meet_state = 10|salut@esc_bridge_soldiers| 5|salut_free@esc_lager_killer
meet_state_wpn = 10|ward@cit_base_guard_talk_to_actor2| 5|probe_2@gar_bandits_seryi
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

В базовой ремарке мой чувак использует анимку Волка - hello_wpn – одной рукой машет ГГ, другой держит ствол. Это начальная анимка, которая будет отрабатываться НПС, пока ГГ не подойдет на дистанцию встречи. В секции meet задается схема реагирования НПС при подходе к нему эктора. В строчке meet_state – реакция при подходе безоружного ГГ. На расстоянии 10 метров НПС отдает честь, затем встает в позицию «смирно» - руки по швам. Это анимка salut. Ближе 5 метров – тоже самое, дальше переходит в позицию «вольно». Это анимка salut_free. В секции meet можно задавать и то, что НПС будет базарить при виде эктора. В моей схеме: «чего стоишь сталкер, подходи, будем разговаривать» (esc_bridge_soldiers) отдавая салют, и на второй дистанции - «разбежались сосунки и т.д». (esc_lager_killer) В строчке meet_state_wpn - реакция НПС если эктор с пушкой в руках. У меня в этой схеме он встает в позу ward – руки за спиной, голова наклонена вниз. Словом поза тюремщика или надсмотрщика (ward примерно так и переводится). В этой позе НПС на дистанции ближе 10 метров орет «повторяю для тупых - отошел к дальней стене камеры…» (cit_base_guard_talk_to_actor2), а если ГГ подойдет еще ближе - «ты щас сдохнешь падла, понял…» (gar_bandits_seryi) и еще несколько рандомных фраз, которые заданы звуковой темой gar_bandits_seryi. К начальной анимке также можно добавлять любую звуковую тему через строчку snd. В данной ремарке ее нет.

Переходим к следующей схеме. Так как все эти схему у меня завязаны вместе, то переход ко второй ремарке произойдет, когда ГГ подойдет к НПС на дистанцию ближе двух метров. Прописано этой в строчке on_actor_dist_le = 2| remark@sit


[remark@sit]
anim = sit_ass
snd = mil_guard_to_max
no_move = true
target = actor
meet = no_meet
;on_actor_dist_le = 2| remark@raciya
;on_timer = 30000| remark@ raciya
on_signal = sound_end| remark@raciya
danger = danger_condition


Итак, что делает НПС в этой ремарке. Сидит на заднице - sit_ass, орет - mil_guard_to_max – «макс, у нас тут проблема на хуторе нарисовалась, собирай народ…» В секции meet прописано отсутствие встречи, так как задано no_meet . Так что разговаривать с ГГ непись не будет. После отработки заданной звуковой темы идет переход к к ремарке remark@ raciya. Сделано это через строчку on_signal = sound_end| remark@raciya. Переведу: на сигнал «конец звуковой темы» переходим к схеме remark@raciya.

Следующая схема.
[remark@raciya]
anim = choose
snd = bar_arena_public
no_move = true
target = actor
meet = meet@raciya
on_timer = 120000| remark@work
;on_actor_dist_ge = 35| remark@work
danger = danger_condition

[meet@raciya]
meet_state = 7|binocular@val_escort_guards| 5|guard_rac@mil_pavlik_to_ara
meet_state_wpn = 7|hide_rac@mil_ara_ambush
victim = 7|actor
victim_wpn = 7|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

Анимка choose – ГГ что-то высматривает: оглядывается по сторонам, прикладывает руку ко лбу, так же как это делам мы, когда смотрим вдаль против солнца. Звуковая тема – что то там из реплик на арене. При встрече – смотрит в бинокль (если он у него есть) и издевательски базарит - «скоро ты будешь работать обедом для мутантов» (в этой теме реплик несколько). На 5 метрах достает рацию (если есть) - анимка guard_rac и базарит реплики из темы предателя Павлика на милитари «все чисто можете подходить». При угрозе стволом - анимка hide_rac («сидит с рацией»), базар - «это засада, уходим» Через 120 секунд - переход к следующей ремарке: on_timer = 120000| remark@work
[remark@work]
anim = caution
no_move = true
snd = mil_max_before_collect
target = actor
on_timer = 30000| remark@work2
meet = no_meet
danger = danger_condition

Анимка caution – ГГ слегка согнувшись, что-то внимательно высматривает на земле, руки прикладывает к коленям. А затем радостно сообщает - «ребята у нас появилась работа». Видимо, что-то высмотрел интересное. Через 30 секунд - снова переход.
[remark@work2]
anim = search
no_move = true
snd = mil_collect_phrase3
target = actor
on_timer = 30000| remark@zombied
meet = no_meet
danger = danger_condition

Анимка search - поиск, только более развернутый. ГГ встает на колени или на корточки и начинает что-то искать. Что он при этом произносит – узнаете, когда послушаете. Через 30 секунд переход к схеме зомби.
[remark@zombied]
anim = trans_zombied
snd = pri_followers_leader_phrase1_1
no_move = true
target = actor
on_timer = 60000| remark@wounded
meet = meet@zombied
danger = danger_condition

[meet@zombied]
meet_state = 5|trans_0@hail
meet_state_wpn = 5|trans_1@hail
victim = 5|actor
victim_wpn = 5|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

Анимка trans_zombied - падает на колени, головой двигает вверх-вниз. trans_1 - также стоит на коленях, только головой вращает по кругу. trans_0 – то же самое, только более энергичней. Или наоборот - извиняюсь если перепутал.

Схема раненый. Тут все понятно.
[remark@wounded]
anim = wounded_heavy_3
snd = help_heavy
target = actor
meet = no_meet
on_timer = 30000| remark@dinner
danger = danger_condition


wounded_heavy_3 – это анимка тяжелораненого. (есть еще и другие анимки раненого). Чувак скрючившись, грохнется на землю. Но на ней не остается, а тут же встает и бежит в сторону в денжере. Что и понятно – здоровье то у него норм. Остальные неписи видевшие как чувак упал, так же срываются в денжере с места. Ищут того, кто «стрелял». Не удивляйтесь, но так они запрограммированы.

Схема обед.
[remark@dinner]
anim = sit_knee
no_move = true
target = actor
meet = meet@dinner
danger = danger_condition
on_actor_dist_ge = 15| remark@dynamite

[meet@dinner]
meet_state = 5|eat_bread@wait| 3|eat_energy@wait
meet_state_wpn = 5|eat_kolbasa@wait| 3|eat_vodka@val_escort_dead
victim = 8|actor
victim_wpn = 8|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

sit_knee - чувак сидит на заднице, опираясь на руку. eat_bread, eat_kolbasa, eat_energy, eat_vodka - тут я думаю ничего объяснять не надо. Чувак хавает и пьет. Пригубив водки, произносит – «пусть земля тебе будет пухом» При отходе эктора на дистанцию больше 15 метров - переход к схеме динамит. Звуковая тема wait – это пауза, в которой непись ничего не говорит.
[remark@dynamite]
anim = dynamite
no_move = true
target = actor
meet = no_meet
on_timer = 30000| remark@claim
danger = danger_condition

dynamite – закладка динамита. Как это выглядит – помните долговца на милитари у стены с динамитом?


[remark@claim]
anim = claim
snd = esc_wolf_thanks
target = actor
meet = meet@claim
danger = danger_condition
on_timer = 60000| remark@story


Анимка claim - НПС подзывает ГГ рукой. snd = esc_wolf_thanks - здесь НПС произносит фразу волка: «меченый теперь тебе проход в лагерь открыт, подходи».


[meet@claim]
meet_state = 7|refuse@mil_collect_phrase5| 5|probe_2@mil_collect_phrase6
meet_state_wpn = 7|backoff@gar_dm_bandit_demand
victim = 7|actor
victim_wpn = 7|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

Анимка refuse - непись пожимает плечами и произносит mil_collect_phrase5 - «не срать». probe_2 - судя по сопровождающим ее звукам (независимо от прописанной мной звуковой темы) – это анимка Круглова (его манипуляции с прибором, а может Сахарова - впрочем, это не важно). Если у вашего НПС будет в руках оружие - то смотреться она будет куда интереснее, так как выглядит будто непись проверяет свой ствол, совершая массу интересных движений. Фраза mil_collect_phrase6 - «опа – с нами новое мясо».

backoff - обычная анимка. Непись начинает махать стволом в разные стороны – типа убери ствол, меченый. Фраза - gar_dm_bandit_demand - «бабки артефакты гони», «ты че козел не врубаешься», «гони бабло или бошку отстрелим». Так как тема рандомная (с окончанием rnd в имени темы в файле sound_script – то и фраз несколько)


[remark@story]
anim = mode_shlem
no_move = true
target = actor
meet = meet@story
danger = danger_condition
on_actor_dist_ge = 30| %+passage_to_story_end%
on_info = {+passage_to_story_end} remark@story_end

[meet@story]
meet_state = 10|probe@wait| 5|probe_1@hail
meet_state_wpn = 10|probe_2@wait| 5|suicide@mil_crazy
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog


mode_shlem - анимка то ли Круглова, то ли Сахарова. Непись будет что то вертеть в руках. probe_1 – тоже самое что и probe_2 , только здесь он плечами вроде бы не дергает. suicide - самоубийство. Советую посмотреть – тем более с озвучкой mil_crazy. probe - укороченный вариант probe_2 и probe_1
[remark@story_end]
anim = probe_3
no_move = true
snd = agr_doctor_1
target = actor
on_signal = sound_end| remark@base
;on_timer = 180000| remark@ base
meet = no_meet
danger = danger_condition

[danger_condition]
ignore_distance = 10

probe_3 - интересная анимка (похоже что кругловская)- чувак срывается с места в панике, затем сгибается как будто от боли, хватается за голову. agr_doctor_1 - базар доктора в тайнике стрелка.

Теперь поясню строчки
on_actor_dist_ge = 30| %+passage_to_story_end%
on_info = {+passage_to_story_end} remark@story_end

Когда эктор отойдет от НПС дальше чем 30 метров, ГГ выдается инфопоршень passage_to_story_end. После его получения - on_info - произойдет переход к базовой ремарке. Сам инфопоршень необходимо регистрировать в соответствующих файлах. Так как мой НПС находится на кордоне, то поршень я сунул в файл info_l01escape. Сообственно инфопоршень в строчке on_actor_dist_ge писать не обязательно(я его использовал только для примера) - можно просто поставить имя следующей ремарки - и в нужный момент произойдет переход. Но инфопоршень может понадобиться для других случаев.

Как я уже говорил в начале, схему можно сделать полностью зацикленной. Нужно лишь в тех блоках, где идет переход к следующей схеме через on_signal поставить таймер или дистанцию. Почему так - не знаю. Но у меня по второму кругу схема стопорилась на тех блоках, где шел переход через on_signal = sound_end|. По таймеру же все прекрасно крутится. Схема из второй части - как раз зацикленная.

P.S. : Кажется понял почему у меня стопорилась схема при использовании перехода on_signal = sound_end|. Дело в том, что если в имени звука, по завершении которого схема должна перейти к новому блоку стоит флажок seq, то он вроде как отыграется только один раз (если в этой теме нет дополнительных реплик). Следовательно по второму кругу он просто не будет срабатывать, а значит и схема застопорится. Так что для этого нужно ставить звук в имени которого в файле sound_script есть флажок rnd. Тема mil_guard_to_max как раз с флажком seq (и реплика только одна - без вариантов). Потому здесь (в схеме sit) она и будет стопориться на втором круге, если не заменить тему на другую. Но это еще надо проверить. Закоментированные строчки - пред которыми стоит ; - может смело выкидывать - это остатки проб разных вариантов.
[править]
Часть вторая.

Еще одна схема. На этот раз в нее добавлены еще постэффекты.
[logic]
active = remark@base
danger = danger_condition
meet = meet

[remark@base]
anim = hello_wpn
no_move = true
target = actor
meet = meet
on_actor_dist_le = 2| remark@punch
danger = danger_condition

С первой ремаркой все понятно. Переход ко второй на дистанции ближе 2 метров.
[remark@punch]
anim = punch
snd = cit_jail_guard_sneer
meet = meet@punch
target = actor
on_signal = sound_end| %=run_cam_effector(fatigue)%
on_timer = 60000| remark@doctor_wakeup %=run_postprocess(deadcity_wake:1777:false)%
danger = danger_condition

[meet@punch]
meet_state = 5|hide_s_left@wait| 4|hide_s_right@wait
meet_state_wpn = 5|backoff2@threat_back
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

punch– анимка удара рукой (или прикладом). Так как я не специалист по боксу, то не скажу точно как именно называется этот удар с правой в челюсть. Если поставите ее в meet_state_wpn на дистанции 2 метра - ГГ получит реальный удар в морду прикладом ствола. Так как я эксперементировал на своем торговце - то он (будучи безоружным) бил чисто кулаком. А если вместо запуска анимации камеры %=run_cam_effector(fatigue)% поставите запуск функции %=killactor%, то НПС кинется вас убивать.

hide_s_left и hide_s_right - непись присядет с разворотом ствола вправо или влево. backoff2 - более веселая анимка backoff. НПС покажет ГГ что-то вроде фака, перед тем как помахать стволом и при этом скажет что-то весьма нелицеприятное. %=run_cam_effector(fatigue)% - это вызов анимации камеры fatigue из папки anims. Земля уйдет из под ног ГГ. Ненадолго. Сработает сразу же после окончания фразы cit_jail_guard_sneer. А ровно через минуту от начала работы схемы – запуск постпроцесса %=run_postprocess(deadcity_wake:1777:false)% и переход к следующей схеме.

deadcity_wake – это постпроцесс, который должен был использоваться в Мертвом городе, если бы разрабы МГ все таки доделали. Если не видели - обязательно посмотрите.Сначала черный экран, затем прояснение с раздвоением картинки и красным фоном.

В следующей схеме идет продолжение постпроцесса – первые 15 секунд. Потом его остановка: on_timer = 15000| %=stop_postprocess(1777)%.
[remark@doctor_wakeup]
anim = doctor_wakeup
snd = cit_doctor_start_dlg
meet = meet@doctor_wakeup
target = actor
on_timer = 15000| %=stop_postprocess(1777)%
on_timer2 = 180000| remark@prisoner
danger = danger_condition

[meet@doctor_wakeup]
meet_state = 3|sleep@cit_jail_guard_sleep| 2|sleep_sit@wait
meet_state_wpn = 3|wounded_zombie@wait
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

Начальная анимация - doctor_wakeup – доктор в мертвом городе. НПС склонится вниз – как будто над чьим то телом (по задумке – над меченым) и начнет базарить. Но совсем не то, что стоит у меня в строчке snd. Видимо, данная анимка завязана со звуком, и иначе не идет. Фразу прописанную мною - cit_doctor_start_dlg – нпс произнесет потом. Обе озвучки длинные – та, что идет с анимкой – монолог доктора в подземелье агропрома в тайнике Стрелка – типа, «что ж ты меченый в растяжку полез, сам же придумал эту хрень…» Моя озвучка - cit_doctor_start_dlg – неиспользованный монолог доктора в мертвом городе. Через 180 секунд – завершение схемы и переход к следующей.


Схема – пленный.
[remark@prisoner]
anim = prisoner
snd = agr_krot_fear
meet = meet@prisoner
target = actor
on_timer = 60000| remark@base
danger = danger_condition

[meet@prisoner]
meet_state = 5|help_me@gar_dm_newbie_no_money
meet_state_wpn = 5|hands_up@agr_dont_shoot
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = true
meet_dialog = escape_lager_guard_start_dialog

[danger_condition]
ignore_distance = 10


Анимка – prisoner – пленный. Помните Шустрого у бандитов? Вот это она и есть. Фраза - agr_krot_fear – не смотря на то, что в названии звуковой темы имя Крота, орет ее Шустрый: типа братцы я тут, спасите.

help_me - машет рукой сидя на одном колене и орет, что у него "нет денег" - gar_dm_newbie_no_money . hands_up - руки кверху и орет "не убивай дяденька" (или типа того) - agr_dont_shoot.

Через 60 секунд возврат к базовой ремарке.
[править]
Часть третья.

В файле state_lib – большая библиотека анимок. Я успел попробовать только часть. У одного бармена их 12. Правда, из пяти опробованных мной сработала только одна bar_sleep - НПС положит голову на руки сложенные перед лицом и будет спать стоя.

Анимки - barman_talk_freу, barman_shock, barman_wait_danger, barman_walk_danger - никакого эффекта не дали. Видимо, они работают только на бармене. Остальные пробуйте сами.

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

psycho_pain – вроде бы тоже самое, только чувак обхватывает голову руками и так сидит.


Анимки psy_shoot, psy_armed, psycho_pain, psycho_shoot– пока остаются на стадии исследования. Так как с ними либо глючит, либо вылетает.



erlik

и
Скрытый текст:
Список анимаций

Список будет пополняться.
chistit ruje_1 Чистка ружья сидя на чем либо.
dmg_norm_idle_0 Стоит и держится одной рукой за бок и тяжело дышит (Раненый)
dmg_norm_idle_1 Тоже самое что и dmg_norm_idle_0
dmg_norm_run_back_0 Раненый НПС отходит назад.
dmg_norm_run_fwd_0 Раненый НПС бежит вперёд.
dmg_norm_run_fwd_1 Раненый НПС хромая идёт вперёд.
doc_agr_0
drink_idle_10 Пьяный, держиться за что-либо. (Присутствует скриншот).
drink_idle_11 Пьяный, держиться за что-либо. (Присутствует скриншот).
drink_idle_2_1 Пьяный. (Присутствует скриншот)
drink_idle_2_2 Тоже что и drink_idle_2_1, только НПС переменается с руки на руку...
drink_idle_3_0 Из положения drink_idle_2_2 ложит руку на руку, потом ложит голову на руки, засыпает.
drink_idle_3_1 -- drink_idle_3_4
drink_idle_5_0 -- drink_idle_5_1 Очень пьяный. (Присутствует скриншот).
drink_idle_7 -- drink_idle_5_1 НПС в пьяном состоянии крепко спит. (Присутствует скриншот).
drunk НПС идёт, шатаясь в разные стороны
drunk_idle_0 НПС стоит на месте и шатается (руки в карманах)
drunk_walk_0 НПС идет пытаясь показаться не пьяным (руки в карманах)
free_facer_0 НПС с левой руки бьёт кулаком.
idle_to_wounded_0 -- idle_to_wounded_3 Падения НПСов
ispug_0 -- ispug_3 НПС пугаеться.
k stene НПС прислонился к стене... (как в ЗП когда не отдаешь артефакт Сталкеру)
kurit sidya_ 0 Курит сидя.
monolith_0 -- monolith_5 Какой-то странный подвешенный НПС получается, то к верх ногами то не пойми как...
myach_1 -- myach_2 Бьёт ногой по мячу.
prison_0 -- prison_1 НПС склонившись над лежащим смотрит на него, потом махает рукой над ним и принимает стоячее положение...
sidya_boltaet_0 Сидит и болтает.
smeh Смеёться.
spit_4 Пытается заснуть, сидит качается чешет руку.
stoya_kurit_2_0 Курит стоя.
stoya_nos Ковыряеться в носу.
stoya_sopli Чихает.
stul Сидит и чистит ствол.
udar_0 Бьёт кулаком с размаху.
wedro Ногой пинает что-то (якобы ведро)
chasovoy_0 С оружием в руках чешит спину, нагинаеться вперёд и назад (делает зарядку).
chasovoy_1 Чешит задницу
chasovoy_2 Оглядываеться на горизонт.
chasovoy_3 Зевает.
chasovoy_4 Чешит голову.
chest_0, chest_0_idle_0 Переходит с идловой аниации, стоит смирно.
chest_0_idle_1 Стоит смирно, перехода с идловой анимки нету.
chest_0_idle_2 Отдаёт честь.
chest_0_idle_3 Получил команду "Вольно".
knopka_0 -- knopka_2 Нажимает на кнопку
metering_0_draw_0 -- 1 Цикл анимации, достаёт детектор с кармана.
metering_0_hide_0 -- 1 Цикл анимации, прячет детектор в карман.
metering_0_idle_0 Стоит с детектором в руках, никакой паники.
metering_0_idle_11 Детектор начинает лагать.
metering_0_idle_12 Детектор начинает лагать.
metering_0_idle_6 ПАНИКА!!!Детектор запиликал, везде аномалии, сталкер отходит назад, прикрывает себя рукой (Судя по всему - выброс)

Вот здесь НПС показующий анимации, поможет!http://narod.ru/disk/24934251000/Mod..._v1.0.exe.html
Ты имееш в виду имя в профиле или алл.спавне?

Последний раз редактировалось Винtorez; 26.07.2011 в 13:51.
Винtorez вне форума  
Ответить с цитированием
Старый 26.07.2011, 14:37   #3492
Игрок
 
Аватар для MBM98
 
Регистрация: 14.07.2010
Адрес: Между складками Логвинова
Сообщений: 890
Репутация: 100 [+/-]
Сделал такой файл -
Скрытый текст:
<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
<dialog id="trader_exchange_dialog">
<phrase_list>
<phrase id="0">
<text>Что, пришел? Вот бери что заказывал, и бабло гони.</text>
<action>escape_dialog.give_weapon_to_actor<actio n>
<give_info>cit_fail_first_task</give_info>
<next>1</next>
</phrase>
<phrase id="1">
<text>Вот, как договаривались Сидорович. Вот деньги</text>
<action>soz_dialogs.money_to_trader</action>
<next>2</next>
</phrase>
<phrase id="2">
<text>Хех, деньги это хорошо, еще вопросы есть?</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>Есть. Где тут можно задания получить?</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>У меня к примеру, или у Волка поспрашивай. У него какое-то дело наечалось по поводу сталкера-самоубийцы.</text>
<next>5</next>
</phrase>
<phrase id="5">
<text>Ладно, до свидания.</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
</game_dialogs>

Диалоги не прописывал, но в систему уже вставил.
Вылетает с этим -
Скрытый текст:
Expression : false
Function : CXml::Init
File : E:\stalker\patch_1_0004\xrXMLParser\xrXMLParser.cp p
Line : 87
Description : XML file:gameplay\dialogs_soz.xml value: errDescrrror reading end tag.
__________________
Ice blue silver sky
Fades into grey
To a grey hope that omens to be
Starless and bible black
MBM98 вне форума  
Ответить с цитированием
Старый 26.07.2011, 14:53   #3493
Игрок
 
Аватар для PROGRAMMER X
 
Регистрация: 18.07.2010
Сообщений: 532
Репутация: 13 [+/-]
Винtorez, Ну по сути этот НПС же клон, поэтому я непому как можно ему вручить отдельное имя? Если в профиле, то боюсь таких нпс потом еще штук 5 встретишь. Вот я и непому где.
__________________
www.sbm.ucoz.ru
Оф. сайт моего мода для Сталкер ТЧ.
PROGRAMMER X вне форума  
Ответить с цитированием
Старый 26.07.2011, 14:58   #3494
Юзер
 
Аватар для Винtorez
 
Регистрация: 29.09.2010
Адрес: У меня дома
Сообщений: 208
Репутация: 20 [+/-]
antdiablon, в фразе:
<phrase id="0">
<text>Что, пришел? Вот бери что заказывал, и бабло гони.</text>
<action>escape_dialog.give_weapon_to_actor<actio n>
<give_info>cit_fail_first_task</give_info>
<next>1</next>
</phrase>
должно быть </action>, а не <actio n>, пробел мешает!
Винtorez вне форума  
Ответить с цитированием
Старый 26.07.2011, 15:01   #3495
Новичок
 
Аватар для MIDERY
 
Регистрация: 26.07.2011
Сообщений: 1
Репутация: 0 [+/-]
Здравствуйте, возник вопрос - как заспавнить главного героя вначале игры, что бы он находился например у ЧАЭС?
MIDERY вне форума  
Ответить с цитированием
Старый 26.07.2011, 15:03   #3496
Юзер
 
Аватар для Винtorez
 
Регистрация: 29.09.2010
Адрес: У меня дома
Сообщений: 208
Репутация: 20 [+/-]
PROGRAMMER X,измени ему в character_desc_escape, в его профиле
<name>Любое имя</name>
Например:
<name>Партизан</name>
Винtorez вне форума  
Ответить с цитированием
Старый 26.07.2011, 15:07   #3497
Гейммастер
 
Аватар для Earth2Space
 
Регистрация: 20.01.2009
Адрес: Хабаровск
Сообщений: 11,699
Репутация: 1136 [+/-]
antdiablon, проверяй все тэги лучше, обычно из-за всяких лишних пробелов, запятых и т.д. возникают эти ошибки. Поставь себе NotePad и выбери в нем синтаксис xml (даже lua поддерживается), и будет намного легче.
Скрытый текст:
Цитата:
Сообщение от antdiablon Посмотреть сообщение
дело наечалось
Исправь пока мод не выложил)
venom9875, ща напишу, обновят.
Цитата:
Сообщение от PROGRAMMER X Посмотреть сообщение
sit_ass
ass - она для того места, о котором я подумал переведя это слово?)
__________________
ASUS ROG Phone
ZTE Axon 7
Nokia Lumia 920
Earth2Space на форуме  
Отправить сообщение для Earth2Space с помощью ICQ Отправить сообщение для Earth2Space с помощью Skype™ Ответить с цитированием
Старый 26.07.2011, 15:07   #3498
Юзер
 
Аватар для Винtorez
 
Регистрация: 29.09.2010
Адрес: У меня дома
Сообщений: 208
Репутация: 20 [+/-]
MIDERY,
Скрытый текст:
Работа с ACDC

Сегодня мы разберем основу работы с ACDC. Но... для начала небольшое отступление. Вы зададите вопрос, почему же лучше работать с ACDC, нежели чем с xrSpawner? Отвечаю: xrSpawner, при всех его преимуществах, имеет множество более значительных минусов. Во первых, xrSpawner не определяет не game_vertex, ни level_vertex. А также он измеряет только позицию. Я думаю, работающие с xrSpawner замечали, что порой обьекты, которые они спаунят, не всегда появляются на месте. Или вообще не появляются. Потому что - повторяю - xrSpawner не определяет вертексы, т.е. точную позицию и распределение по АИ-сетке. Итак, начнём работу!

У нас есть программа ACDC, руки и мозги в голове. Кладём all.spawn в папку utils и жмём на батник "распаковка". Итак, all.spawn распакован! Видим файлы alife_*** и way_***. В файлах alife_*** только обьекты, которые спаунятся. А в way_*** только пути. Я думаю с алайфом всё понятно. Разберем way. Пути. Путь это и есть путь. По которому может двигаться живой обьект. Сейчас мы это рассмотрим.

Для начала устроим текстовый беспредел

Найдём файл alife_l01_escape, а в нём примерно такие строки:
[869]
; cse_abstract properties
section_name = actor
name = level_prefix_actor_0001
s_rp = 0
position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0
s_flags = 0x29

[dont_spawn_character_supplies]

[spawn]
wpn_binoc
novice_outfit
device_torch
END

; cse_visual properties
visual_name = actors\hero\stalker_novice

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0x75732029
upd:creature_flags = 0x70
upd:position = -139.449829101563,-29.6908683776855,-351.492797851563
upd_model = 0
upd_torso = 0.00895109120756388,0,-0.999959945678711
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_trader_abstract properties
money = 40
trader_flags = 0
character_profile = actor

; cse_ph_skeleton properties

; cse_alife_creature_actor properties

upd:actor_state = 0xd20
upd:actor_accel_header = 0
upd:actor_accel_data = 0
upd:actor_velocity_header = 0
upd:actor_velocity_data = 0
upd:actor_radiation = 0
upd:actor_weapon = 110
upd:num_items = 0

Для начала расщедримся

Припишем актору в [dont_spawn_character_supplies] такие строки:
[spawn]
[dont_spawn_character_supplies]

[spawn]
wpn_binoc
wpn_vintorez
ammo_9x39_pab9 = 20
wpn_usp
ammo_11.43x23_hydro = 22
novice_outfit
device_torch

Получится, что мы подарим Меченому при начале игры Винторез, 600 патронов к нему, пистолет USP и 420 патронов к нему. Так. Теперь Меченый у нас будет крутым рэмбо Теперь ещё и подарим ему денежек:
; cse_alife_trader_abstract properties
money = 40
trader_flags = 0
character_profile = actor

В строке money напишем любое число. Тока астрономические не надо (не проверял). Ну, теперь Меченый не только рэмбо, но и миллионер.

Теперь займемся кординатами. У нас они такие:
position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0

Это наши позиция и дирекция.
; cse_alife_object properties
game_vertex_id = 19 ;тот самый вертекс на игре
distance = 0.699999988079071
level_vertex_id = 111256 ;вертекс на уровне
object_flags = 0xffffffbf
custom_data = <<END

А теперь пропишем туда такие кординаты:
position = -167.232299804688,-25.4363708496094,-354.692901611328
direction = 0,-0.365248799324036,0

; cse_alife_object properties
game_vertex_id = 0
distance = 0.699999988079071
level_vertex_id = 82413
object_flags = 0xffffffbf
custom_data = <<END
upd:health = 1
upd:timestamp = 0x75732029
upd:creature_flags = 0x70
upd:position = -167.232299804688,-25.4363708496094,-354.692901611328
upd_model = 0
upd_torso = -0.365248799324036,0,0.930909931659698
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

Теперь игра начнётся в здании блокпоста на 2 этаже. С этим мы закончим.

Теперь создадим нового НПС:
[871]
; cse_abstract properties
section_name = stalker
name = esc_bridge_soldier1
position = -133.27989196777,-30.146812438965,-372.0263671875
direction = 0.028013030067086,0,0.9996075630188

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_soldier_regular

; cse_alife_object properties
game_vertex_id = 20
distance = 16.1000003814697
level_vertex_id = 118083
object_flags = 0xffffffbf
custom_data = <<END
[logic]
active = walker

[walker]
path_walk = hodim_dvor
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_3

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -133.27989196777,-30.146812438965,-372.0263671875
upd_model = 0
upd_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,2,2,1,2
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

Так вот он наш друг НПС - солдат на блокпосте Тут уже знакомы строки. Позиция, дирекция, вертексы... Но есть кое что новое
[logic]
active = walker

[walker]
path_walk = hodim_dvor

Элементарная логика НПС. hodim_dvor - это путь, по которому будет ходить НПС. НПС есть, всё готово. Но путя то у нас нет Создадим его в файле way_l01_escape. Припишем вот такие строчки:
[hodim_dvor]
points = p0,p1
p0:name = name00
p0:position = -120.44634246826,-30.15016746521,-363.68786621094
p0:game_vertex_id = 24
p0:level_vertex_id = 132887
p0:links = p1(1)

p1:name = name01 ;номер точки
p1:position = -132.61611938477,-30.142726898193,-363.87365722656 - только позиция
p1:game_vertex_id = 19 ;вертекс на игре
p1:level_vertex_id = 118862 ;вертекс на уровне
p1:links = p0(1) ;на какую точку после этой перейдёт НПС (тут он будет ходить туда-сюда, если не написать линкс, то он остановится
на месте.)

Всё! Вгоняем в way_*** эти строки (тока мои коментарии писать не надо). Всё готово, можно тестить изменения :_))))). Как снимать координаты и работать с PI, расскажу в следующей статье. Теперь жмём на батник "запаковка" и усё! Пихаем all.spawn в игру. Только лучше ещё поправить отношения актора к военным и наоборот в лучшую сторону. Чтобы непись сразу пошёл по своему пути. Он будет ходить от казармы до дома (там поймёте).
[править]
Автор

Статью написал Rez@niy
Категория: Конфигурационные файлы

Вместо
position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0
game_vertex_id = 19
level_vertex_id = 111256
upd:position = -139.449829101563,-29.6908683776855,-351.492797851563
Пишы свои.
Снятие координат-http://stalkerin.gameru.net/wiki/ind...яем_координаты

Последний раз редактировалось Винtorez; 26.07.2011 в 15:13.
Винtorez вне форума  
Ответить с цитированием
Старый 26.07.2011, 15:14   #3499
Игрок
 
Аватар для MBM98
 
Регистрация: 14.07.2010
Адрес: Между складками Логвинова
Сообщений: 890
Репутация: 100 [+/-]
Винtorez, у меня в файле нет пробела и не было там. А вылетает все-равно.
__________________
Ice blue silver sky
Fades into grey
To a grey hope that omens to be
Starless and bible black
MBM98 вне форума  
Ответить с цитированием
Старый 26.07.2011, 15:17   #3500
Игрок
 
Аватар для PROGRAMMER X
 
Регистрация: 18.07.2010
Сообщений: 532
Репутация: 13 [+/-]
MIDERY, Смотря через что. Через xrSpawner там все просто находишь в разделе SPAWN слово actor, и меняешь Level ID на l12_stancia. только координаты для спавна нужны. Я лично беру из сохранений, но это тебе тогда нужно до ЧАЭС самому дойти и где то там сохраниться.

Цитата:
Сообщение от Earth2Space Посмотреть сообщение
ass - она для того места, о котором я подумал переведя это слово?)
Ну судя по всему. )) Вроде как сидит на заднице
Цитата:
Сообщение от Винtorez Посмотреть сообщение
<name>Любое имя</name>
Например:
<name>Партизан</name>
А потом этих Партизанов не будет несколько?
__________________
www.sbm.ucoz.ru
Оф. сайт моего мода для Сталкер ТЧ.

Последний раз редактировалось PROGRAMMER X; 26.07.2011 в 15:20.
PROGRAMMER X вне форума  
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:58.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования