Доброй ночи. Что и в каких файлах нужно прописать, чтобы созданные мною монстры и NPS, повторялись, то есть по новой появлялись. А то получилось так : задание на уничтожение есть, а монстра нет.
ssmann, некорректно поставлен вопрос...
Не ясно, какие квесты имеешь ввиду, однотипные либо ты сам делаешь?
Чтобы "монстры повторялись" надо создать гулаг, статей на эту тему полно.
Чтобы сработало "задание выполнено" при убийстве мутанта, надо ему в логику прописать выдачу инфопоршня, типо:
Проблема в том, что чувак либо говорит постоянно, находясь во всех секциях логики, либо всегда молчит... Зависит от того, какие варианты я пробую (закомментированные строки).
А планировал сделать так: в [walker@buhaet_spit] и [walker@bezhit_domoi] диалоговое окно не открывается - сталкер молчит, а в [walker@dom] диалог должен быть доступен...
Казалось бы - ни чего сложного, однако не получается нормально сделать. Я уже и с логикой персонажей из ТЧ сверялся (Шустрый,Петруха и его команда...).
Где я пролетаю, подскажите?
Сообщение было успешно отредактировано Fagot_ (05-12-2013 17:34 GMT3 часа, назад)
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
Доброго времени суток.
Подскажите, каким образом через скрипт можно регулировать 'силу' анимаций экрана? То есть, например, в оригинале чем больше выпиваешь водки, тем сильнее тебя шатает, а мне нужно, чтобы при определённых условиях (будь то использование предмета, вход в рестриктор, неважно) экран начинало качать сильнее, или дрожать больше и чаще и т.п.
[walker@buhaet_spit]
path_walk = us_walk
path_look = us_look
meet = no_meet
on_actor_dist_le_nvis = 3| walker@bezhit_domoi ; дистанция до игрока 3 или меньше метров...
[walker@bezhit_domoi]
path_walk = us_bezhit_domoi_walk
meet = no_meet
on_actor_dist_le_nvis = 5| walker@dom ;получается что схема перескакивает сразу же по безусловному признаку нахождения актора в заданной дистанции и стартует [walker@dom]
[walker@dom]
path_walk = us2_walk
path_look = us2_look
on_actor_dist_ge_nvis = 15|walker@buhaet_spit
meet = meet@govorit ; а здесь чувак уже разговаривает...
Вот и выходит что он постоянно говорит, т. к. схема перескакивает после приближения игрока на последнюю секцию... Попробуй в секции "walker@bezhit_domoi" изменить переключение "on_actor_dist_le_nvis = 5" на следующую секцию на что то другое, например "on_timer" или "on_info" по приходу инфопорции например либо выполнения какой нибудь функции...
VOva-VIP посмотри здесь...
Рестриктор для просмотра эффектов анимаций
1. Для испытания эффектов я, лично для себя, установил рестриктор.
Можете спавнить его скриптом, а можете (как и я) установить его в all.spawn
Код:
[880] ; Номер, естественно, последний в файле + 1
; cse_abstract properties
section_name = space_restrictor
name = test_ppe_anm
position = -91.203,-26.343,-452.424 ; Координаты свои
direction = 0,0,0
; cse_alife_object properties
game_vertex_id = 12 ; И вертексы тоже
distance = 0
level_vertex_id = 172428 ; И вертексы тоже
object_flags = 0xffffff3e
custom_data = <<END
[logic]
cfg = scripts\test.ltx ; Обратить внимание
END
2. В директории "config\scripts\" я создал файл "test.ltx", в котором записал следующее :
Код:
[logic]
active = sr_idle
[sr_idle]
; Это для файлов анимации. Для просмотра файлов постэффектов изменить %=enable_present_anm% на %=enable_present_ppe%
on_actor_inside = sr_idle1 %=enable_present_anm%
[sr_idle1]
;Это для файлов анимации. Для просмотра файлов постэффектов изменить %=disable_present_anm% на %=disable_present_ppe%
on_actor_outside = sr_idle %=disable_present_anm%
function enable_present_anm()
if not tab_parent_path then
news_manager.send_tip(db.actor, 'END LIST ANIMATIONS. NEXT CIRCLE')
i = 1
parse_num = 1
end
level.add_cam_effector (tab_parent_path..tab_anm[tab_parent_path][parse_num], 2005, loop, "")
parse_num = parse_num + 1
if parse_num > #tab_anm[tab_parent_path] then
i = i + 1
parse_num = 1
end
end
function disable_present_anm()
level.remove_cam_effector(2005)
if i > #tab_parent_path then i = 1 end
news_manager.send_tip(db.actor, "NEXT .ANM -> "..tab_parent_path..tab_anm[tab_parent_path][parse_num])
end
--##########################################
-- Для постэффектов
--##########################################
local tab_ppe = { 'agr_u_fade.ppe',
'alcohol.ppe',
'blink.ppe',
'controller_hit.ppe',
'dead_zone.ppe',
'deadcity_wake.ppe',
'deadcity_wake_old.ppe',
'duality_circle.ppe',
'escape.ppe',
'fire_hit.ppe',
'monolith_off.ppe',
'nightvision.ppe',
'nightvision2.ppe',
'nightvision_bad.ppe',
'nightvision_good.ppe',
-- 'p_proba.ppe', Я не юзаю, вылетает
-- 'proba.ppe', Я не юзаю, вылетает
'proba2.ppe',
'proba_gray.ppe',
'proba_test.ppe',
'psy_antenna.ppe',
'psy_antenna_indoor.ppe',
'radar_psi.ppe',
'radar_stop.ppe',
'radar_wake.ppe',
'radiation.ppe',
'snd_shock.ppe',
'teleport.ppe',
'total_recall.ppe',
'vibros.ppe',
'vibros_p.ppe',
'yantar_underground_psi.ppe'
}
local j = 1
local loop = false
function enable_present_ppe()
if j > #tab_ppe then
news_manager.send_tip(db.actor, 'END LIST POSTEFFECTS. NEXT CIRCLE')
j = 1
end
level.add_pp_effector(tab_ppe[j], 2006, loop)
j = j + 1
end
function disable_present_ppe()
level.remove_pp_effector(2006)
if j > #tab_ppe then j = 1 end
news_manager.send_tip(db.actor, "NEXT .PPE -> "..tab_ppe[j])
end
При входе в рестриктор Вы увидете постэффект(или анимацию, если установили в файле "test.ltx")
При выходе выскочит сообщение о том, какой следующий эффект будет проигран при входе в рестриктор.
Всё настроено циклически. Т.е. после проигрывания последнего в списке эффекта, будет проигрываться первый и т.д.
======================================================================
P.S.
Анимации камеры до конца не проверены, поэтому может получиться ситуация, как у меня с постэффектами. Вылетало с проигрыванием файлов 'p_proba.ppe' и 'proba.ppe'.
В этом случае просто закомментируйте их. (см. в коде). И начните сначала.
Скажу ещё раз - ничего не настроено для удобного использования,
поэтому если выйдете (вылетите) из игры, начнётся всё сначала.
Чтобы не смотреть все просмотренные эффекты (для прокрутки) просто заходите, и тут же выходите из рестриктора.
И наблюдайте за мессинджами о том, какой эффект будет проигран следующим.
Ещё. В переменной loop установлено значение false
Т.е. эффекты будут проигрываться однократно.
Установив значение loop в true, эффекты будут проигрываться бесконечно.
Сообщение было успешно отредактировано losiara (05-12-2013 21:39 GMT3 часа, назад) Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
[walker@bezhit_domoi]
path_walk = us_bezhit_domoi_walk
meet = no_meet on_timer = 30000| walker@dom
----------------------
Но проблема в том, что он начнёт говорить через тот промежуток времени, который я укажу в on_timer, а на тот момент сталкер может ещё не дойти до [walker@dom], или наоборот - дошёл, а время ещё не истекло ,и он, соответственно, стоит молча пока не закончатся секунды, указанные в on_timer.
С on_info попробую...
Сообщение было успешно отредактировано Fagot_ (03-03-2014 14:00 GMT3 часа, назад)
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
Fagot_
Здесь не сложно, все эти поля могут работать с инфопорциями как указал dimak либо еще проще "on_info ="
Либо так: on_actor_in_zone = <имя_зоны>|<название_схемы> – если актер в находится в указанной зоне (указывается имя рестриктора), то например начинается диалог и непись переходит в следующую схему вариантов много...
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
losiara , у меня к этому персонажу надо будет подходить десятки раз, рестриктор не пойдёт, т.к. он (сталкер) шляется на большой территории. on_info = - это, понятное дело, переведёт его в др.схему при получении поршня ГГ, но ему после диалога надо будет опять переходить в предыдущую схему. Далее ГГ может тут же опять подойти к НПС, отойти от него, подойти опять и т.п... Поэтому я и пытался сделать с помощью: on_actor_dist_ge_nvis = 25|
on_actor_dist_le = 5|...
Вот с этим что-то не разберусь - как мне выдать поршень в тот момент, когда ГГ приближается к НПС, что бы этот НПС переходил в схему walker@dom, а потом уже в этой схеме - другой поршень, чтобы НПС переходил в след.схему и т.д.? Повторюсь: рестриктор - не вариант.
Сделаю, всё таки, с рестриктором. Поставлю его в одной точке и буду туда направлять НПС с помощью on_actor_dist_le_nvis. Придётся переписать ему пути в олл.спавне и пожертвовать кое-чем, ну да ладно...
ssmann,
1. Создаёшь скрипт, например: spawn_pseudogigant.script, в него вставляешь:
Код:
function spawn_gigant ()
-- X-18
alife():create("gigant_normal",vector():set(25.89103,4.2712,20.2185),6516,1120)
end
Координаты меняешь на свои.
2. Файл bind_stalker.script, в нём находишь функцию function actor_binder:net_spawn(data) и в неё, в самый низ, перед:
Код:
return true
end
вставляешь следующее:
Код:
if level.name() == "l04u_labx18" then
get_console():execute("start_my_script_level_name_=_"..level.name())
spawn_pseudogigant.spawn_gigant()
end
При каждом заходе в лабораторию, будет появляться псевдогигант.
Если же тебе его надо привязать к квесту, тогда делать нужно по другому. В файле m_giant.ltx (gamedata\config\creatures) создаёшь секцию своего мутанта, например:
;--------Мой псевдогигант--------------
[moi_gigant]:m_gigant_e
$spawn = "monsters\old\gigant"
visual = monsters\psevdogigant\psevdogigant
icon = ui_npc_monster_psevdogigant
spec_rank = normal
rank = 501
community = pseudo_gigant custom_data = scripts\moi_gigant.ltx ;ссылка на логику
Затем создаёшь файл логики для мутанта, например - moi_gigant.ltx (gamedata\config\scripts) и в нём пишешь:
Код:
[logic]
...
on_death = mob_death
[mob_death]
on_info = %+твой_инфопоршень%
Псевдогиганта спавнишь так же, как в пункте №1 (такая же функция), только вместо gigant_normal пишешь moi_gigant, а активируешь её вставив <action>spawn_pseudogigant.spawn_gigant</action> , например, в диалог квестодателя (когда берёшь у него задание).
В info_l05dark_valley.xml создаёшь поршень:
Чувак гуляет по своим делам (молчит), приближаешься к нему на 2 м., пытаешься заговорить - молча переходит в [walker@bezhit_domoi], затем поступает сигнал pribezhal, и он переходит в [walker@dom].
Заметил одну вещь: пока я не удалил из way_локация анимацию drunk_walk_0, проблемы с логикой персонажа возникали на каждом шагу. Как только удалил - всё стало работать, как часы. Хотя казалось бы - какая связь?.. Но, видимо, не зря разработчики забраковали эту анимацию, косячная она.
Теперь остался только один вопрос: почему не работает в его логике это:
Код:
on_use = use
[use]
on_info = %+info%
Почитал, что написано на stalkerin-е по поводу этой секции, там как-то коротко... В общем, попробовал и так и сяк - не выдаётся поршень. А эта секция ,вообще, используется для НПС? Я поискал в логике разных персонажей ТЧ - ни у кого не видал...
Я хочу что бы там, где с НПС поговорить не возможно, при попытке юзнуть выдавался поршень.
Сообщение было успешно отредактировано Fagot_ (07-12-2013 11:55 GMT3 часа, назад)
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
Fagot_ , я недавно столкнулся с такой проблемой, когда делал весь лагерь новичков на определённое время ранеными, т.е. короткое пси-излучение, но чтобы обратно их вернуть в начальное положение, нужно перезагрузиться, т.к. логика у некоторых висла. Далее посмотрел, как пысы использовали on_actor_dist_le = ... ,т.е. получается эта штука полезна для разморозки неписей. Вставил определенное расстояние и непись размораживается. По поводу твоей вырезанной анимки. У меня нормально работает, но только без _look Непись ходит по периметру, руки в карманах и чтобы - куда смотрит - не нужно.
у меня бывает так: НПС идёт drunk_walk_0, доходит до точки, где должен завалиться спать, и ещё несколько секунд стоит на месте, пробуксовывая, т.е.продолжая отрабатывать анимацию, а только потом ложится.
Ещё, иногда идёт пьяный и ни с того ни с сего, не дойдя до следующей точки, начинает буксовать на месте. Ни что и ни кто ему не мешает дальше идти. И тормозить будет до посинения, пока не перезагрузишся, или сбегаешь за пределы алайф...
И вопрос (я выше спрашивал)... Ты использовал в логике сталкеров:
Код:
on_use = use
[use]
on_info = %+info%
?
Чего-то не выходит у меня...
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
привет всем ребята скажите пожалуйста где хранятся части зомби которые выпадают с аномалий и как это все устроено, можно ли вместо частей зомби в аномалию засунуть артефакты?
Здрасьте.Такой вопрос:в какой из нескольких геймдат в ТЧ(имею в виду файлы) находятся конфиги с СВД "Дальнобойщик"?А то интересно.что распаковывать,а что нет.
eco-stalker , да, говорят, что можно настроить и громкость и расстояние,на котором слышен звук. Но у меня на Вин7 не запускается СДК, так что не подскажу, как это делается.
Пришедший из Ниоткуда , ё-моё, я бы уже давно, на твоём месте, распаковал все архивы и достал этот Дальнобойщик, чем ждать столько времени, когда же кто-нибудь назовёт название этого db... Программу тебе уже выше подсказали.
Я давно хотел вас спросить, как художник художника - вы рисовать умеете?..
Цитата#Связистт :
Ребята что и где надо подправить чтоб вертолеты могли стрелять по гг в ответ? и как можно сменить население в гулаге после определенного события?
Правь логику вертолетов, как правило прописана в all.spawn...
Сменить население в смысле сделать гулаг для другой группировки с теми же параметрами???
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.