Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) @dsh, если не вдаваться в подробности, которые в оригинале можно сказать не заметны, условия просты, это масса и конфиг, ну массы хватает всегда, а вот конфиг ты настраиваешь сам, грубо говоря если есть значение ключа - сталкер итем продает, если их нет или они некорректны - не продает. В оригинале для всех сталкеров один конфиг и любой нпс без ключа trade будет торговать generic листом. Что-бы корректно сделать нормальные торговые условия для каждого сталкера - тут даже скриптовых костылей не хватит, без движка собственно никак. Хотя на костылях смотрится приемлемо, можешь у меня глянуть если интересно. Листы для актора и нпс формируются немного по разному, поэтому если захотеть можно выбить такой неприятный баг, но если за 8 лет никто не выбил, значит не сильно хотели . И кстати о птичках, торговые конфиги - динамичны, т.е. при нормальном луа их можно переписывать, а потом перевести непися в оффлайн-онлайн и он уже будет торговать по новому конфигу (но это долго, некрасиво и вообще как-то не по христиански). Это такой костыль если у вас нет нормального функционала, допустим если перенести все на скрипты это можно уже делать абсолютно хоть когда, чем я собственно и пользуюсь у себя в моде. Изменено 12 Апреля 2015 пользователем Карлан Ссылка на комментарий
TASGREEN 1 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Доброго времени суток. Какой файл отвечает за подсветку амуниции в инвентаре (какие строчки нужно править/добавлять)? Я использую наработки из мода SWM, где есть множество аксессуаров для оружия. Хотелось бы, чтобы они подсвечивались в соответствии с оружием, с которым они совместимы и наоборот. ПРИМЕР: Еще один день – еще один урок. Ссылка на комментарий
UnLoaded 313 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Ну если Вы темой не ошиблись - то в чистом ТЧ(SoC) можно и дальше хотеть , но возможности такой нет. Но если очень хотеть - тогда смотерть в сторону правленного движка и делать... Ну или спросить в теме "Ищу файлы\моды\аддоны", может уже кто-то сделал. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @TASGREEN, А еще можно зайти в тему "Судьбы Зоны", посмотреть видео из шапки, узнать что существует скриптовый инвентарь и скоро выйдет на публику. И по части подсветки тех или иных предметов там функционал на месте. Не навязываюсь, просто к сведению что кроме "Возможности такой нет" и "ковырять движок" - есть еще вот такой вариант. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
UnLoaded 313 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) Опять спрошу, насчет прерывания комбата у монстров. Ну нужно мне, очень.... Взял для опытов схему "mob_home" по причине ее максимальной простоты. Добавил\адаптировал в нее фрагменты из xr_combat_ignore, в общем получилось: читаются оверрайды, монстр тусуется вокруг назначенной в схеме точки и не реагирует на врагов, если оверрайды выставлены. Но если монстр сорвался в комбат, и если, пока он воюет изменить оверрайды(делаю это переводом непися в другую секцию, по факту инфо-порции) - он не реагирует. Т.е. тупо добивает НПСа, и тока потом меняет поведение. Как быть, что можно еще попробовать ? Подскажите. P.S. Еще думаю насчет такого - а может монстр добивает непися потому, что ему такой action выставлен ? И пока он его не завершит - лупит непися ? Может попробовать ему action обнулять\сбрасывать ? Или это я не туда вообще ? есть еще вот такой вариант. И типа он работает на исходном движке ТЧ ? Изменено 12 Апреля 2015 пользователем UnLoaded Ссылка на комментарий
dsh 3 824 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @UnLoaded, @Карлан, не-не, я наверное не точно выразился. Меня интересует не то, что сталкер в принципе будет продавать или не будет. Меня интересует именно то оружие, которое у него в руках/за спиной. Вот открываю я торговлю со сталкером и вижу, что он спокойно продает свой единственный калаш. Вот как мне это изменить? Нужно, что бы сталкеры ни в каком случае не выставляли в продажу свое единсвенное оружие. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) И типа он работает на исходном движке ТЧ ?А что там такого? @UnLoaded, возьми своего монстра под скрипт, get_script()/get_script_name() и script() методы используй, сбрось ими, проверь. Можно создать дополнительную группировку для монстра дружелюбную к группировке нпс. @dsh, даже не представляю как это может быть. Возможно ты что-то с флагами намудрил, проверяй различные ключи (флаги) относящиеся к использованию предмета нпсом. Изменено 12 Апреля 2015 пользователем Dennis_Chikin Ссылка на комментарий
TASGREEN 1 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Ну если Вы темой не ошиблись - то в чистом ТЧ(SoC) можно и дальше хотеть , но возможности такой нет. Но если очень хотеть - тогда смотерть в сторону правленного движка и делать... Ну или спросить в теме "Ищу файлы\моды\аддоны", может уже кто-то сделал. Действительно ошибся. Искал куда задать вопрос и написал не туда. Еще один день – еще один урок. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) Продолжение дискуссии про "нужно/не нужно" удалил. По причине бессмысленности.Но вообще - странный подход: спрашивают - "как сделать", ответ - "а у меня сделано". Тема все-таки не рекламная. Или описываем, как, или одно из двух, если уж решили ответить. Но вообще Бак просто на время торговли отбирал у неписей "непродажное оружие". Но результат - гм... А еще был DTL, еще додвижковоковырятельный, в котором это тоже вроде было сделано. Как-то. Вообще же данная конкретная идея представляется неправильной без глубокой переработки неписевой жизни, ибо вот вся эта вот "автоматика выбора оружия" в итоге регулярно дает разнообразные странные результаты, типа "ни за что не променяю свой дробовик - лучше сдохну. И буду стрелять из него всегда и везде, даже если дострелить вообще невозможно". То есть, смысл ровно тот же, что и выкупленный у непися единственный ствол, и даже хуже. Без ствола он хоть просто убежит. Изменено 12 Апреля 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 @Dennis_Chikin, дело не в торговле, дело во флагах, я же говорю. Торговля совершенно не при чем, она берет секцию, к юзердатам или чему-то уникальному отношения торговые функции оригинала не имеют никакого. Все странное решается на уровне тех скриптовых костылей, что я сделал еще на додвижковом варианте. Правда без дополнительных коллбеков можно было тоже словить баги, т.к. повторюсь, функционал работает с секциями, т.е. управлять листом в зависимости от того какое там у кого и что - невозможно, это главная причина почему я правлю движок. Ну а что-бы стрелял из нормального - есть же схема менеджера оружия (какой степени кривоты я не знаю), ну а продавать/покупать лучшее/худшее решается логикой торговли, которую я и представил, но она без движка все равно криво работает по вышеуказанной причине. Ссылка на комментарий
Silver Raven 197 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Натолкнулся сегодня на старый добрый вылет вида (все, что есть, от включенного "расширенного" режима ведения лога): ! Cannot find saved game error: there is no section [hit@altar_monolith] for npc [pri_monolith_28] ! Cannot find saved game %s FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...e.r\shoc\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) Закомментировал по старинке, надеясь выйти на причину вылета. На первый раз вылезло это: FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...р s.t.a.l.k.e.r\shoc\gamedata\scripts\rx_wmgr.script:561: C stack overflow stack trace: Scheduler tried to update object pri_monolith_roof2 FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...e.r\shoc\gamedata\scripts\state_mgr_animation.script:632: C stack overflow Но насколько я помню, вылеты по переполнению стека рандомны... Думаю, ладно, запущу еще раз. И вот тут все, ни вылетов ни подозрительной активности в логе. На всякий случай сравнил скрипты из текущей версии сборки и последним сохраненным билдом, но отличия там мелкие. Прошелся спец. утилитой для проверки скриптов на наличие банальных ошибок\опечаток - все ок. Где искать причину? aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Priboj37 324 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 , Лог,- крайние 15- 20 строк. Модели адаптировал иль насыпом закинул? Ссылка на комментарий
UnLoaded 313 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Где искать причину? Что-то все в логах на тему state_mgr, может какая анимация в путях\логике не приемлемая ? Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) there is no section [hit@altar_monolith] for npc [pri_monolith_28] Какое слово непонятно ? Кто-то где-то хочет [hit@altar_monolith], но не находит. Соответственно, ищем, где ее спрашивают, тупо, поиском по всем файлам, а дальше думаем: или оторвать совсем, или что-то куда-то дописать. Изменено 12 Апреля 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 Закомментировал по старинке, надеясь выйти на причину вылета. Вообще не то, что нужно сделать. Возможно как раз тут и есть истинная причина. Но насколько я помню, вылеты по переполнению стека рандомны... Ни разу. Ты понимаешь из-за чего бывает переполнение стека? Ссылка на комментарий
Silver Raven 197 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) @Dennis_Chikin, сомневаюсь, что там какие-то проблемы с логикой. Вся Припять у меня оригинальная. Все НПС со своей родной логикой, гулагами и тп. И никаких изменений в скрипты, относящиеся к этой локации я не производил. Хотя, на всякий случай проверяю сейчас данный "нюанс". upd. Лог жалуется на вот этот кусок: -- prayers (молящиеся вокруг алтаря) for i, v in pairs({14, 14, 14, 13, 8, 8}) do t = { section = "logic@" .. gname .. "_prayer" .. i, idle = 0, prior = v, state = {0,1}, squad = squad, group = groups[1], in_rest = in_r, out_rest = "pri_monolith_base_altar_restr", online = "{+pri_monolith_spawn2}", predicate = m_predicate_r } table.insert(sj, t) ltx = ltx.. "[logic@" .. gname .. "_prayer" .. i .. "]\n" .. "active = walker@" .. gname .. "_prayer" .. i .. "\n" .. "combat_ignore = combat_ignore\n" .. "on_hit = hit@altar_monolith\n" .. "on_death = hit@altar_monolith\n" .. "[walker@" .. gname .. "_prayer" .. i .. "]\n" .. "path_walk = prayer" .. i .. "_walk\n" .. "path_look = prayer_look" .. math.random(1, 2) .. "\n" .. "danger = danger@monolith\n" .. "combat_ignore_cond = {-pri_monolith_base_attack_altar_zone}\n" end в gulag_pripyat.script (выташил из распакованного бейкапа чистой игры. Ибо у меня он не юзается): Логично, что проблема вылезла бы и на "чистой" игре. Это очень для меня странно. @Карлан, я ни разу не скриптер и в подобном ничего не понимаю... Все что мне известно: "Данный вылет встречается редко. Лечится обычной переигровкой. Решения не имеет. (во всяком случае, так говорили раньше. А эта проблема уже давно преследует тот-же АИ пак для ТЧ. Особенно, когда НПС "хватаются" за подствольники.) Изменено 12 Апреля 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) И ГДЕ здесь написано [hit@altar_monolith] ? А также все остальное, что в этом случае полагается ? [walker@...] - вижу, [hit@...] - не вижу. Изменено 12 Апреля 2015 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Silver Raven 197 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) @Dennis_Chikin, если ты про .ltx файл логики, то вот он (опять же, оригинальный): ;-------------------------------------------------------------------------- ; стандартный диалог ;-------------------------------------------------------------------------- [meet@def] meet_state = 2| wait meet_state_wpn = 2| wait victim = 2| actor victim_wpn = 2| actor use = true use_wpn = true ;-------------------------------------------------------------------------- ; диалог лидера ;-------------------------------------------------------------------------- [meet@leader] meet_dialog = {-pri_followers_actor_leave} pri_followers_start_dlg meet_state = 25| {+pri_followers_actor_leave} guard, hello@ {+pri_followers_actor_leave} wait, {+pri_wave7_end -pri_show_zones} pri_followers_final_phrase2, talk_hello | 5| guard@ wait meet_state_wpn = 25| {+pri_followers_actor_leave} guard, hello@ {+pri_followers_actor_leave} wait, {+pri_wave7_end -pri_show_zones} pri_followers_final_phrase2, talk_hello | 5| guard@ wait victim = 25| actor victim_wpn = 25| actor use = true use_wpn = true ;-------------------------------------------------------------------------- ; отключенная реакция на звук, тела и хит ;-------------------------------------------------------------------------- [danger@ignore] ignore_types = corpse ignore_distance_sound = 2 danger_inertion_time_sound = 5000 ;ignore_distance_hit = 1 ;-------------------------------------------------------------------------- ; отключенная реакция на звук ;-------------------------------------------------------------------------- [danger@sound_small] ignore_distance_sound = 20 ;-------------------------------------------------------------------------- ; отключенная реакция на звук ;-------------------------------------------------------------------------- [danger@sound_middle] ignore_distance_sound = 40 ;------------------------------------------------------------------------------------------------- ;-- Followers ;------------------------------------------------------------------------------------------------- [followers_hit] ;on_info = {=hit_by_actor} %+pri_followers_actor_enemy% [followers_death] on_info = {=gulag_population_le(pri_followers:2)} %+pri_undeground_respawn_start =change_leader%, %=change_leader% ;------------------------------------------------------------------------------------------------- ;--- LEADER: WAIT -------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------------------- [logic@pri_followers_leader_wait] active = remark@pri_followers_leader_wait combat_ignore = combat_ignore on_hit = followers_hit on_death = followers_death [remark@pri_followers_leader_wait] path_walk = leader_hello_walk anim = ward ;wait target = logic@pri_followers_bomber_wait ;pri_followers_leader_hello_look, 0 on_actor_dist_le_nvis = 20 | remark@pri_followers_leader_wait_phrase1 wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_leader_wait_phrase1] anim = ward ;wait snd = pri_followers_leader_phrase1_1 tips = pri_followers_leader_phrase1_1 target = logic@pri_followers_bomber_wait ;pri_followers_leader_hello_look, 0 on_signal = sound_end| remark@pri_followers_leader_wait_actor %+pri_followers_leader_phrase1_end% wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_leader_wait_actor] anim = guard target = logic@pri_followers_bomber_wait ;actor on_actor_dist_le_nvis = 15 | remark@pri_followers_leader_wait_phrase2 %+pri_followers_mission_accept% on_timer = 15000| remark@pri_followers_leader_wait_phrase3 %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_leader_wait_phrase2] anim = guard_na snd = pri_followers_leader_phrase1_2 ;tips = pri_followers_leader_phrase1_2 target = actor on_signal = sound_end| remark@pri_followers_leader_wait_phrase3 wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_leader_wait_phrase3] anim = guard_na snd = pri_followers_leader_phrase1_3 ;tips = pri_followers_leader_phrase1_3 target = logic@pri_followers_bomber_wait on_signal = sound_end| %+pri_followers_start% wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_leader_wait_switch] anim = guard target = pri_followers_leader_hello_look, 0 wounded = wounded@ignore meet = no_meet danger = danger@ignore ;--- LEADER: WAVE1 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave1] active = walker@pri_followers_leader_wave1_wait on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave1_wait] path_walk = wave1_leader_walk2 path_look = wave1_leader_look2 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave1 %+pri_helicopters_start% on_info = {+pri_wave1_start} walker@pri_followers_leader_wave1 %+pri_helicopters_start% ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave1] path_walk = wave1_leader_walk1 path_look = wave1_leader_look1 def_state_moving1 = assault def_state_moving2 = assault ;on_info = {+pri_followers_heli_look} remark@pri_followers_leader_wave1 ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet [remark@pri_followers_leader_wave1] anim = guard target = 801 on_timer = 5000 | walker@pri_followers_leader_wave1_cont ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave1_cont] path_walk = wave1_leader_walk1 path_look = wave1_leader_look1 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave1_start} %+pri_wave1_start% ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet ;--- LEADER: WAVE2 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave2] active = walker@pri_followers_leader_wave2_wait on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave2_wait] path_walk = wave2_leader_walk1 path_look = wave2_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave2 %+pri_wave2_start_phrase% on_info = {+pri_wave2_start} walker@pri_followers_leader_wave2 %+pri_wave2_start_phrase% ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave2] path_walk = wave2_leader_walk2 path_look = wave2_leader_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave2_start} %+pri_wave2_start% ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet ;--- LEADER: WAVE3 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave3] active = walker@pri_followers_leader_wave3_wait combat_ignore = combat_ignore on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave3_wait] path_walk = wave3_leader_walk1 path_look = wave3_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave3 %+pri_wave3_start% on_info = {+pri_wave3_start} walker@pri_followers_leader_wave3 ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} [walker@pri_followers_leader_wave3] path_walk = wave3_leader_walk2 path_look = wave3_leader_look2 def_state_moving1 = assault ;sprint def_state_moving2 = assault ;sprint on_timer = 3000 | remark@pri_followers_leader_wave3_fight ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} [remark@pri_followers_leader_wave3_fight] anim = threat_fire target = 807 on_timer = 5000 | walker@pri_followers_leader_wave3 ;on_actor_dist_ge_nvis = 70 | %+pri_followers_actor_leave% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} ;--- LEADER: WAVE4 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave4] active = walker@pri_followers_leader_wave4_wait combat_ignore = combat_ignore on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave4_wait] path_walk = wave4_leader_walk1 path_look = wave4_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave4 %+pri_wave4_start_phrase% on_info = {+pri_wave4_start} walker@pri_followers_leader_wave4 %+pri_wave4_start_phrase% wounded = wounded@ignore meet = no_meet ;no_meet combat_ignore_cond = {=check_fighting(820:821)} [walker@pri_followers_leader_wave4] path_walk = wave4_leader_walk2 path_look = wave4_leader_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave4_start} %+pri_wave4_start% wounded = wounded@ignore meet = no_meet ;no_meet ;--- LEADER: WAVE5 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave5] active = walker@pri_followers_leader_wave5_wait on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave5_wait] path_walk = wave5_leader_walk1 path_look = wave5_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave5 on_info = {+pri_wave5_start} walker@pri_followers_leader_wave5 wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave5] path_walk = wave5_leader_walk2 path_look = wave5_leader_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave5_start} %+pri_wave5_start% wounded = wounded@ignore meet = no_meet ;no_meet ;--- LEADER: WAVE6 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave6] active = walker@pri_followers_leader_wave6_wait on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave6_wait] path_walk = wave6_leader_walk1 path_look = wave6_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_leader_wave6 on_info = {+pri_wave6_start} walker@pri_followers_leader_wave6 wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave6] path_walk = wave6_leader_walk2 path_look = wave6_leader_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave6_start} %+pri_wave6_start% wounded = wounded@ignore meet = no_meet ;no_meet ;--- LEADER: WAVE7 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave7] active = walker@pri_followers_leader_wave7_wait combat_ignore = combat_ignore on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave7_wait] path_walk = wave7_leader_walk1 path_look = wave7_leader_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers ;on_signal = syn | {=pri_followers_can_hear} remark@pri_followers_leader_wave7_phrase, walker@pri_followers_leader_wave7 ;on_info = {+pri_wave7_start =pri_followers_can_hear} remark@pri_followers_leader_wave7_phrase, {+pri_wave7_start} walker@pri_followers_leader_wave7 on_signal = syn | %+pri_wave7_leader_phrase_start% on_info = {+pri_wave7_leader_phrase_end} walker@pri_followers_leader_wave7 wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_leader_wave7] path_walk = wave7_leader_walk2 path_look = wave7_leader_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave7_start} %+pri_wave7_start% on_info = {-pri_wave7_sound_start =pri_follower_see_ambush} %+pri_wave7_sound_start% wounded = wounded@ignore meet = no_meet ;no_meet combat_ignore_cond = {-pri_wave7_start} ;--- LEADER: WAVE8 ------------------------------------------------------------------------------ [logic@pri_followers_leader_wave8] active = walker@pri_followers_leader_wave8_wait on_hit = followers_hit on_death = followers_death [walker@pri_followers_leader_wave8_wait] path_walk = wave8_leader_walk1 path_look = wave8_leader_look1 def_state_moving1 = assault def_state_moving2 = assault on_actor_dist_ge_nvis = 70 | walker@pri_followers_leader_wave8_leave wounded = wounded@ignore meet = meet@leader danger = danger@ignore [walker@pri_followers_leader_wave8_leave] path_walk = wave8_leader_walk1 path_look = wave8_leader_look1 def_state_moving1 = assault def_state_moving2 = assault on_timer = 35000 | %+pri_followers_scene_end% wounded = wounded@ignore meet = meet@leader danger = danger@ignore ;------------------------------------------------------------------------------------------------- ;--- BOMBER: KAMP -------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------------------- [death@bomber] on_info = {=killed_by_actor} %+pri_followers_actor_enemy +pri_bomber_dead%, %+pri_bomber_dead% ; =pri_drop_rpg_ammo% [logic@pri_followers_bomber_wait] active = remark@pri_followers_bomber_wait ;on_death = followers_death ;death@bomber on_hit = followers_hit [remark@pri_followers_bomber_wait] path_walk = wait_bomber_walk anim = guard target = logic@pri_followers_leader_wait on_info = {+pri_followers_leader_phrase1_end} remark@pri_followers_bomber_wait_na wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore [remark@pri_followers_bomber_wait_na] path_walk = wait_bomber_walk anim = guard_na target = logic@pri_followers_leader_wait wounded = wounded@ignore meet = no_meet ;meet@def danger = danger@ignore ;--- BOMBER: WAVE1 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave1] active = walker@pri_followers_bomber_wave1_wait ;on_death = death@bomber on_hit = followers_hit [walker@pri_followers_bomber_wave1_wait] path_walk = wave1_bomber_walk2 path_look = wave1_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_bomber_wave1 %+pri_helicopters_start% on_info = {+pri_wave1_start} walker@pri_followers_bomber_wave1 %+pri_helicopters_start -pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always [walker@pri_followers_bomber_wave1] path_walk = wave1_bomber_walk1 path_look = wave1_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault wounded = wounded@ignore meet = no_meet ;no_meet combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always ;--- BOMBER: WAVE2 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave2] active = walker@pri_followers_bomber_wave2_wait ;on_death = death@bomber on_hit = followers_hit [walker@pri_followers_bomber_wave2_wait] path_walk = wave2_bomber_walk1 path_look = wave2_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_bomber_wave2 on_info = {+pri_wave2_start} walker@pri_followers_bomber_wave2 %-pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_bomber_wave2] path_walk = wave2_bomber_walk2 path_look = wave2_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave2_start} %+pri_wave2_start% wounded = wounded@ignore meet = no_meet ;no_meet ;--- BOMBER: WAVE3 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave3] active = walker@pri_followers_bomber_wave3_wait ;on_death = death@bomber on_hit = followers_hit ;combat_ignore = combat_ignore [walker@pri_followers_bomber_wave3_wait] path_walk = wave3_bomber_walk1 path_look = wave3_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_info = {+pri_wave3_btr_arrived} walker@pri_followers_bomber_wave3_fire_place %-pri_bomber_dead =pri_give_ammo_og7b%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} [walker@pri_followers_bomber_wave3_fire_place] path_walk = wave3_bomber_walk2 path_look = wave3_bomber_look2 def_state_moving1 = sneak_run ;assault def_state_moving2 = sneak_run ;assault on_signal = arrived | remark@pri_followers_bomber_wave3_fire %+pri_wave3_bomber_on_position% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} [remark@pri_followers_bomber_wave3_fire] anim = hide_fire target = 807 on_timer = 2700 | walker@pri_followers_bomber_wave3_die ;%=hit_npc(807:bip01_spine1:6:2000)% wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} [walker@pri_followers_bomber_wave3_die] path_walk = wave3_bomber_walk1 path_look = wave3_bomber_look1 def_state_moving1 = assault ;sprint def_state_moving2 = assault ;sprint on_timer = 3500 | walker@pri_followers_bomber_wave3_fire_place wounded = wounded@ignore meet = no_meet ;no_meet danger = danger@ignore combat_ignore_cond = {!fighting_actor} ;--- BOMBER: WAVE4 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave4] active = walker@pri_followers_bomber_wave4_wait ;on_death = death@bomber on_hit = followers_hit ;combat_ignore = combat_ignore [walker@pri_followers_bomber_wave4_wait] path_walk = wave4_bomber_walk1 path_look = wave4_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_bomber_wave4 on_info = {+pri_wave4_start} walker@pri_followers_bomber_wave4 %-pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet combat_ignore_cond = {=check_fighting(820:821)} [walker@pri_followers_bomber_wave4] path_walk = wave4_bomber_walk2 path_look = wave4_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave4_start} %+pri_wave4_start% wounded = wounded@ignore meet = no_meet ;no_meet ;combat_ignore_cond = {!check_fighting(804:805)} ;always ;--- BOMBER: WAVE5 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave5] active = walker@pri_followers_bomber_wave5_wait ;on_death = death@bomber on_hit = followers_hit ;combat_ignore = combat_ignore [walker@pri_followers_bomber_wave5_wait] path_walk = wave5_bomber_walk1 path_look = wave5_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_bomber_wave5 on_info = {+pri_wave5_start} walker@pri_followers_bomber_wave5 %-pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet ;combat_ignore_cond = {!check_fighting(804:805)} ;always [walker@pri_followers_bomber_wave5] path_walk = wave5_bomber_walk2 path_look = wave5_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave5_start} %+pri_wave5_start% wounded = wounded@ignore meet = no_meet ;no_meet ;combat_ignore_cond = {!check_fighting(804:805)} ;always ;--- BOMBER: WAVE6 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave6] active = walker@pri_followers_bomber_wave6_wait ;on_death = death@bomber on_hit = followers_hit ;combat_ignore = combat_ignore [walker@pri_followers_bomber_wave6_wait] path_walk = wave6_bomber_walk1 path_look = wave6_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers on_signal = syn | walker@pri_followers_bomber_wave6 on_info = {+pri_wave6_start} walker@pri_followers_bomber_wave6 %-pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_bomber_wave6] path_walk = wave6_bomber_walk2 path_look = wave6_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave6_start} %+pri_wave6_start% wounded = wounded@ignore meet = no_meet ;no_meet ;--- BOMBER: WAVE7 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave7] active = walker@pri_followers_bomber_wave7_wait ;on_death = death@bomber on_hit = followers_hit ;combat_ignore = combat_ignore [walker@pri_followers_bomber_wave7_wait] path_walk = wave7_bomber_walk1 path_look = wave7_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault team = followers ;on_signal = syn | walker@pri_followers_bomber_wave7 ;on_info = {+pri_wave7_start} walker@pri_followers_bomber_wave7 on_info = {+pri_wave7_leader_phrase_end} walker@pri_followers_bomber_wave7 %-pri_bomber_dead%, %-pri_bomber_dead% wounded = wounded@ignore meet = no_meet ;no_meet [walker@pri_followers_bomber_wave7] path_walk = wave7_bomber_walk2 path_look = wave7_bomber_look2 def_state_moving1 = assault def_state_moving2 = assault on_signal = arrived | {-pri_wave7_start} %+pri_wave7_start% wounded = wounded@ignore meet = no_meet ;no_meet combat_ignore_cond = {-pri_wave7_start} ;--- BOMBER: WAVE8 ------------------------------------------------------------------------------ [logic@pri_followers_bomber_wave8] active = walker@pri_followers_bomber_wave8_wait on_hit = followers_hit ;on_death = followers_death [walker@pri_followers_bomber_wave8_wait] path_walk = wave8_bomber_walk1 path_look = wave8_bomber_look1 def_state_moving1 = assault def_state_moving2 = assault meet = no_meet ;no_meet wounded = wounded@ignore ;------------------------------------------------------------------------------------------------- ;--- Выстрел по молящимся ;------------------------------------------------------------------------------------------------- [hit@altar_monolith] on_info = %+pri_monolith_base_attack_altar_zone% [hit@altar_monolith] в самом конце. И сам НПС в all.spawne: [6388] ; cse_abstract properties section_name = stalker_monolith name = pri_monolith_28 position = -7.19472694396973, 2.78197240829468, 203.175796508789 direction = -8.54346671985695e-006, -1.50119984149933, -2.06313507078448e-006 id = 65535 version = 118 script_version = 7 spawn_id = 6388 ; cse_alife_trader_abstract properties money = 5000 character_profile = pri_monolith_regular ; cse_alife_object properties game_vertex_id = 2200 distance = 8.3999996 level_vertex_id = 93425 object_flags = 0xffffffff custom_data = <<END [smart_terrains] pri_monolith = true END ; cse_visual properties visual_name = actors\monolit\stalker_mo_head_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 18 g_group = 15 health = 1.7 dynamic_out_restrictions = dynamic_in_restrictions = ; cse_alife_monster_abstract properties equipment_preferences = 2, 2, 2, 0, 2 main_weapon_preferences = 1, 0, 0, 0 ; cse_ph_skeleton properties ; se_stalker properties squad_id = upd:health = 1.7 upd:timestamp = 0x64383 upd:creature_flags = 0x84 upd:position = -7.19472694396973, 2.78197240829468, 203.175796508789 upd:o_torso = -1.50119984149933, -8.54346671985695e-006, 0 upd:g_squad = 18 upd:g_group = 15 ; cse_alife_human_stalker properties upd:start_dialog = З.Ы. При комментировании в скрипте гулага строк: "on_hit = hit@altar_monolith\n" .. "on_death = hit@altar_monolith\n" .. вылет исчезает. Изменено 12 Апреля 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) Теперь осталось понять, тот ли это файл. Впрочем, очевидно, что таки да, строчки, которые эту секцию хотят - не нужны. Изменено 12 Апреля 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Апреля 2015 Поделиться Опубликовано 12 Апреля 2015 (изменено) @Dennis_Chikin, тогда их безнаказанно можно будет расстреливать .Как вариант (в стиле пыс): gulags.pri_monolith.ltx = ltx.."[hit@altar_monolith]\n".. "on_info = {-pri_monolith_base_attack_altar_zone} %+pri_monolith_base_attack_altar_zone%\n" И туда им и дорога. Кстати, а где у них игнорирование дэнжеров и попаданий ? Собственно, полагаю, что именно по этому до вылета добираются не все. dc Изменено 12 Апреля 2015 пользователем Dennis_Chikin Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти