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

[CoP] Ковыряемся в файлах

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

Всем привет. Подскажите, пожалуйста, как правильно создать сквад из двух человек, чтобы они не бормотали под нос дефолтные фразы? Или всё-таки нужно делать два сквада, каждый из одного человека, и прописывать эксклюзивную логику? Спасибо.

Ссылка на комментарий
12 часов назад, warwer сказал:

В логике указываешь хит по получении инфо-порции.

Дружище, подскажи как это должно выглядить примерно.

- Пролетарии всех стран, соединяйтесь!

 

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

@WizziGun, это просто только для тех кто имеет нужные познания в ковырянии. Как подсказать? Ты умеешь распаковывать-запаковывать алл.спавн? Пользоваться поиском в Тотал Коммандере? Снять координаты нужных объектов в игре?...

В алле нужно найти нужные тебе объекты и добавить пропись логики:

custom_data = <<END
[logic]
cfg = scripts\твоя локация\название логики.ltx                       ; допустим cfg = scripts\marsh\mar_wood_1.ltx
END
story_id = 303

; cse_visual properties

 

По данному адресу создать текстовый документ с логикой:

[logic]
on_hit = hit
[hit]
on_info = %+hit_wood_1%

 

А инфопорцию hit_wood_1 нужно добавить в условия получения, допустим когда главный герой зашёл в смарт торейн или рестриктор.
---------

Да невозможно всё объяснить до мелочей!

@Дмитрий Зверев

 

22 часа назад, Дмитрий Зверев сказал:

 Или всё-таки нужно делать два сквада, каждый из одного человека, и прописывать эксклюзивную логику?

Создай два профиля нпс. Логику (теоретически) им можно одну на двоих. Чтобы молчали в ней прописать meet = no_meet.

Добавь их в нужный квад (для примера):
[esc_smart_terrain_2_12_stalker_2_squad_1]
faction = stalker
npc = esc_wolf, дядя_вася, дядя_жора, sim_default_stalker_0, sim_default_stalker_0

 

Извини, примеры из ЧН. ЗП нет под рукой.

  • Спасибо 1
  • Нравится 2
Ссылка на комментарий

@warwer, спасибо, но не, не работает. Всё равно стоят и себе под нос бурчат про аномалии и хабар. Причём, когда я ради теста их спавнил вне сквада, а поодиночке, то таких проблем не было, т.е. они тупо по логике действовали.

Всё, разобрался. Нужно прописать [exclusive] в логике смарта, там -- ссылку на эксклюзивную логику (вида unique_work = zaton\unique_stalker_logic.ltx), а затем исправить саму логику:

 

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

 

[logic@unique_work] ;-- здесь обязательно должно быть название из логики смарта;
active = walker@unique_work_first_step ;-- и во всех остальных секциях (как я понял), её тоже надо выносить вперёд, а уж потом писать своё название схемы;

 

[walker@unique_work_first_step]
path_walk = walker_1_walk ;-- а это очень важный момент, потому что я два дня ловил вылеты stack trace из-за него. Несмотря на то, что way_point'ы в SDK нужно обзывать с префиксом смарта (unique_smar_walker_1_walk, например);
path_look = walker_1_look ;-- то здесь их нужно указывать без префикса;
on_signal = unique_stop| remark@unique_work_phrase ;-- опять суём название работы из смарта в название схемы;

 

[remark@unique_work_phrase] 
no_move = true

 


Возможно кому-то будет полезно, т.к. ни в одном гайде по созданию NPC через сквад на CoP я подобных уточнений не нашёл, а ведь именно из-за них вылетает/не работает. 

Ссылка на комментарий
В 21.09.2019 в 08:41, warwer сказал:

Ты умеешь распаковывать-запаковывать алл.спавн?

я работаю в сдк. 

 

В 21.09.2019 в 08:41, warwer сказал:

[hit]
on_info = %+hit_wood_1%

вот именно это я и спрашивал 

Спасибо!

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

- Пролетарии всех стран, соединяйтесь!

 

Ссылка на комментарий
В 20.09.2019 в 01:37, WizziGun сказал:

функция которая автоматически сломает нужный мне объект

Есть такая - xr_effects.hit_obj().

Можно вызвать из логики рестриктора вместо или вместе с выдачей инфы.

Все параметры подробно расписаны непосредственно в xr_effects.script.

  • Спасибо 1
  • Согласен 1

S.T.A.L.K.E.R. CoP Objects (upd 23.01.24)

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

Всем привет. Такой вопрос - а что вообще нужно прописывать в логике монстров в ЗП, чтоб не атаковали актора? 
Ну, то есть, в ТЧ хватало (насколько я помню) braindead = true, а здесь перепробовал десяток оверрайдов и секций, и ничего не работает. 
И под спойлером есть пара вопросов, буду благодарен, если вы ответите:

 

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

 

[logic@snork_work]
active = mob_walker@snork_work
suitable = check_npc_name(snork_normal)} true ;-- тут у меня скорее всего неправильно, т.к. я не совсем понимаю, откуда берётся имя в скобках. Из секции в all.spawn? Но обычные NPC работают с именем из character_desc;
 

[mob_walker@snork_work]
path_walk = walker_1_walk
path_look = walker_1_look
combat_ignore_cond = true ;-- ВЕЗДЕ пишут именно так, но разве не должно быть combat_ignore_cond = always? Впрочем, не работает ни так, ни так.
aggressive = false 
friendly = true

 

 

Иными словами, снорк должен спавниться в своём смарте, после чего он забивает на игрока и бежит по патрульному пути. Но вместо этого он спавнится и тут же бросается на игрока (потому что триггер спавна срабатывает неподалёку от позиции снорка). Вопрос - как быть? Что можно изменить, чтобы заставить его игнорировать присутствие игрока? Спасибо.

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

@Expropriator, да, смотрел именно её. Интересовала секция monster_job = true, потому что при её добавлении я хотя бы начинал ловить безлоговые вылеты. Сейчас стёр "suitable" из своей логике (потому что, подозреваю, очень неграмотно я её добавил) -- всё заработало. Сложновато-таки после ТЧ с максимально простецкими и очевидными секциями логики перетекать на ЗП, где даже спавн по инфопоршням потёрли и приходится плясать с бубном и создавать сквады для одного человека/монстра.

Ссылка на комментарий
1 час назад, Дмитрий Зверев сказал:

Что можно изменить, чтобы заставить его игнорировать присутствие игрока?

Нужно добавить в секцию работы:

[mob_walker@stay]
aggressive = false

S.T.A.L.K.E.R. CoP Objects (upd 23.01.24)

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

Это только для схемы mob_home. Есть более подходящее решение:

combat_ignore_cond = true

 

Ранее был известен под ником BoBaH_671.

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

Парни помогите! в теме никто не шарит:вылет при попытке ремонта у механиков (после обновления):
Expression : ai().script_engine().functor("inventory_upgrades.can_afford_repair_item", funct)
Function : CUIActorMenu::TryRepairItem
File : ui\UIActorMenu_script.cpp
Line : 122
Description : Failed to get functor <inventory_upgrades.can_afford_repair_item>, item = leatherman_tool

stack trace:

это при попытке ремонта у механиков, прям беда((( любой ремонт-вылет

Call of Chernobyl: Anomaly 1.5.0 [beta]+UPDATE 3

Добавлено  warwer,

Ты для кого такие "красивые" посты оформляешь?
Почему вопрос задаешь не "Калофчернобыльцам"? Это их епархия.

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

Добрый вечер.

33 минуты назад, Сеятель сказал:

вылет при попытке ремонта у механиков (после обновления)

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

35 минут назад, Сеятель сказал:

в теме никто не шарит

Просто не обращают внимания так как вылет только у вас.

 

Заново переустановите игру, не торопясь, и строго по инструкциям.

Сначала основные файлы мода, потом поверх них обновление 3.

Старое обновление 2 и фикс 7 ставить не нужно.

Также удалите все дополнительные модики - дополнения если они установлены.

Потом можно будет поставить их предварительно проверяя на совместимость с обновлением 3.

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

@shahvkit В общем не ответ: мне нужно лечение вылета, а не инструкция для первоклассников.

Да вылет только у меня после установке обновы, при прохождении половины игры, есть рецепты лечения?

Изменено пользователем W.A.S.P.
оверквотинг
Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

  • Не нравится 1
  • Смешно 1
Ссылка на комментарий
4 минуты назад, Сеятель сказал:

В общем не ответ: мне нужно лечение вылета, а не инструкция для первоклассников

Ну если не ответ, то тогда сидите и ждите. Только вот долго ждать придётся.

5 минут назад, Сеятель сказал:

Да вылет только у меня после установке обновы, при прохождении половины игры, есть рецепты лечения?

Уже сказал выше - переустановите игру.

Если вылет только у вас, значит кривая установка обновления, или сбои при его скачивании.

Никто за вас в этом разбираться не будет.

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

Да печаль, думал здесь спецы...

Тогда уж название темы смените: Ковыряемся в файлах.

Добавлено  warwer,

Тебе внятно объяснили, что проблема только у тебя. Для попытки её исправления нужны твои файлы - это как минимум, т.к в файлах мода такой ошибки нет.

Устное предупреждение за орфографию, нарушений правил цитирования и пренебрежение к пользователям.

  • Не нравится 2
  • Смешно 1
Ссылка на комментарий

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

Что нужно: персонаж отыгрывает анимацию choose, затем по таймеру переходит в другую ремарковую схему, где вызывается затемнение экрана и пси-эффект, после чего отыгрывает анимацию suicide. Затем - опять затемнение экрана, отключение пси-эффекта, и персонаж уже сидит в анимации hide (дескать, ГГ всё это примерещилось). 

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

 

[remark@balagur_to_zombie_work_loot]
anim = choose 
target = story|d_d_zombie_01
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 6000| %=run_postprocess(black:111) =run_postprocess(psy_antenna:222) =disable_ui% remark@balagur_to_zombie_work_suicide -- включаю чёрный экран, пси-эффект и увожу его в схему "суицида"
meet = no_meet

 

[remark@balagur_to_zombie_work_suicide]
anim = zat_b22_medic_suicide
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 10000| %=run_postprocess(black:333)% remark@balagur_to_zombie_work_after_suicide -- вырубаю постпроцессы и увожу его в обычную схему
on_timer2 = 2500| %=stop_postprocess(111)%
meet = no_meet

 

[remark@balagur_to_zombie_work_after_suicide]
anim = hide
on_timer = 2000| %=stop_postprocess(333) =stop_postprocess(222) =enable_ui%
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_info = {+pogovoril_2} walker@balagur_to_zombie_work_basepath

 

 

Тем не менее, вместо этого он отыгрывает анимку choose, после чего сразу же переходит в последнюю схему, однако не садится в hide, а просто пялится на игрока. Кто знает, в чём может быть проблема? К слову, на ТЧ аналогичная схема (только с обычной анимацией suicide) работала отлично. На ЗП сначала работала, но через раз, сейчас вообще не срабатывает. 

Заранее спасибо.
https://pastebin.com/rktFuy0u -- на всякий случай, прикрепляю полный файл логики. 

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

@Дмитрий Зверев, возможно тут:

on_timer2 = 2500| %=stop_postprocess(111)%

Логика отключается. Попробуй изменить так:

 

[remark@balagur_to_zombie_work_suicide]

anim = zat_b22_medic_suicide
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 2500|  %=stop_postprocess(111)%| 10000| %=run_postprocess(black:333)% remark@balagur_to_zombie_work_after_suicide
meet = no_meet

Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@naxac, спасибо, но такое написание приводит лишь к бесконечному зацикливанию (по кругу крутится пси-эффект, а персонаж стоит с пистолетом у подбородка). Но сдвиг есть, так что попробую расковырять. Наверное, лучше через рестриктор делать вызов постпроцессов. 

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...