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

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


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

Искал я везде про b204, но единственное нашёл только в squad_descr_jupiter.

[jup_b202_bandit_squad]:online_offline_group


faction = bandit
sympathy = 0
npc = jup_b202_bandit
target_smart = {-jup_b202_bandit_go_away} jup_b202, jup_b204
spawn_point = jup_b202_snag_wounded_look
story_id = jup_b202_bandit_squad

 

Если я правильно понял, то это тот бандит, который Корягу на Полустанке царапнул из Дезерт Игла. Смарт-цель = Если бандит не ушёл - то точка b202 (кажись полустанок), а в противном случае - B204! 

Чую, это его первый смарт-ковер (или анимпойнт), который не берёт никто из бандитов группы b204. Сейчас проверю, отпишусь. Того бандюка вроде все мочили моментально.

Мда, подтвердилось. Дядька пошёл к b204, уселся там у водки... И остался нейтральным! Этого бандита около полустанка пришлось оберегать. То зомби, то собаки, то кабаны, то кровососы...

b202 - это не полустанок, а Янов. Т.к. в scripts есть файлы с b202_medik, b202_barmen. 

Теперь ещё больше вопросов. Если те бандюки враги, а этот с ними, а сам он - посланник Султана или его человек, работающий в районе Юпитера, то что он яшкается с этими отморозками .который даже ГГ! не любят?
А он ещё и предатель! Я всех враждебных бандитов уничтожил, а он спокойно так трупы обшмонал и обратно уселся! Сам он точно в группе не состоит.

Изменено пользователем Капитан Кузьмичёв
Ссылка на комментарий

Я переписал zat_b22_medic_door

 

[logic]
active = ph_door@closed

[ph_door@closed]
closed = true
locked = false
on_use = {!check_smart_alarm_status(zat_stalker_base_smart:normal) !actor_in_zone(zat_a2_sr_light_2)} ph_door@open
on_info = {!check_smart_alarm_status(zat_stalker_base_smart:danger) !actor_in_zone(zat_a2_sr_light_2)} ph_door@locked
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop

[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed
on_info = {!check_smart_alarm_status(zat_stalker_base_smart:danger) !actor_in_zone(zat_a2_sr_light_2)} ph_door@locked
on_game_timer = 50 | ph_door@closed
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop

[ph_door@locked]
closed = true
locked = true
on_info = {=check_smart_alarm_status(zat_stalker_base_smart:normal)} ph_door@closed
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon

 

Теперь у меня дверь не открывается. Что не так с логикой?

Ссылка на комментарий
@list, что конкретно изменил? Что хотел добиться?
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Ну как же? Цель была простая. Нужно заставить дверь реагировать на оружие в зоне zat_a2_sr_light_2. Если игрок убрал оружие, то дверь можно открыть. Если игрок с оружием в руках - дверь заперта. Если дверь открыта, а игрок ушёл из зоны, то она должна закрыться.

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

@list, что было в логике до этого? Что конкретно ты изменил? По какому принципу работало до этого, как хотел чтобы работало? Из всех вопросов ответил только на последний. А об остальных мы должны гадать?

 

А, и вообще ты в неправильном форуме. Если всё, что ты менял - это конфиг, то тебе в соответствующую ковырялку. Для какой игры, кстати?

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

До этого была обычная дверь медика с логикой

 

[logic]
active = ph_door@locked

[ph_door@locked]
locked = true
on_info = {+zat_b22_medic_respawn} ph_door@locked_timer
tip_open = tip_door_locked
snd_open_start = trader_door_locked
not_for_npc = true

[ph_door@locked_timer]
locked = true
tip_open = tip_door_locked
snd_open_start = trader_door_locked
not_for_npc = true
on_game_timer = 10800 | {+zat_b22_trick_done} ph_door@close %+zat_b22_can_go_in%
on_info = {+zat_b38_disappearance_stalkers_find_cop_near_port_krans_give -zat_b22_can_go_in +zat_b22_trick_done} ph_door@close %+zat_b22_can_go_in%

[ph_door@close]
locked = false
closed = true
tip_open = tip_door_open
on_use = {-zat_b22_actor_can_hurt} ph_door@open %+zat_b22_actor_can_hurt%, ph_door@open
not_for_npc = true

[ph_door@open]
locked = false
closed = false
on_use = ph_door@close
tip_close = tip_door_close
not_for_npc = true

 

По сюжету за ней прячется Тремор во время квеста Исчезновение сталкеров. Я изменил всё. Это помещение выглядит подходящим, чтобы разместить там торговца, но сначала нужно решить проблему с логикой двери. Нужно сделать обычную торговую зону, в которую нельзя попасть с оружием в руках.


 

Если всё, что ты менял - это конфиг

Нет, я переименовал затон и скомпилировал его на драфте. Затем поменял логику. Дверь теперь открыть не получается.

 

Скриптование здесь по-любому не при чём. Не в ту тему написал. Malandrinus

Изменено пользователем Malandrinus
Ссылка на комментарий

@list, не уверен, но на первый взгляд вызывает подозрение on_game_timer. Было 10800, стало 50. И явно используется как-то иначе. Такое ощущение, что через 50 миллисекунд после открытия сразу закрывает.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

on_game_timer в сочетании с on_info при одинаковых аргументах не работают. Писал же об этом. В таблице получается один и тот же ключ.

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

Я убрал on_game_timer но это не помогает. Две надписи мелькают накладываясь одна на другую как и раньше. И в комнату попасть невозможно.

http://imagizer.imageshack.us/a/img540/1959/A1ylr8.jpg

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

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


Изучаю логику бандюков в районе Склад Контейнеров (ну, если по серьёзному, по ПЫСовски, то точка a12).

[logic@jup_a12_bandit_chief]


active = walker@bandit_chief_stand
suitable = {=check_npc_name(jup_a12_bandit_chief)} true
prior = 200
on_death = death

[walker@bandit_chief_stand]
path_walk = bandit_chief_stand_walk
path_look = bandit_chief_stand_look
def_state_standing = wait_na
combat_ignore_cond = true
meet = meet@bandit_chief_stand
on_info = {+jup_a12_chief_bandit_wait_threat_prisoner -jup_a12_stalker_prisoner_free} walker@wait_threat_prisoner, {+jup_a12_stalker_prisoner_dead} walker@stand, {+jup_a12_stalker_prisoner_free +jup_a12_stalker_prisoner_thanked_actor} walker@stand, {+jup_a12_actor_enemy_to_bandits -jup_a12_chief_bandit_wait_threat_prisoner} %+jup_a12_chief_bandit_wait_threat_prisoner%

[meet@bandit_chief_stand]
close_anim = wait_na
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
snd_on_use = nil
use = {!actor_enemy !actor_has_weapon} true, false
use_wpn = false
meet_dialog = jup_a12_bandit_chief_dialog
trade_enable = false

[walker@wait_threat_prisoner]
path_walk = bandit_chief_threat_prisoner_walk
path_look = bandit_chief_threat_prisoner_look
def_state_standing = threat_na
combat_ignore_cond = true
on_actor_in_zone = jup_a12_sr_threat_prisoner_zone | %+jup_a12_chief_bandit_threat_prisoner%
on_info = {+jup_a12_chief_bandit_threat_prisoner} walker@threat_prisoner
def_state_moving = rush
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone

[walker@threat_prisoner]
path_walk = bandit_chief_threat_prisoner_walk
path_look = bandit_chief_threat_prisoner_look
combat_ignore_cond = true
def_state_standing = threat_na
on_info = {+jup_a12_chief_bandit_kill_prisoner} walker@kill_prisoner, {+jup_a12_stalker_prisoner_dead} walker@stand, %=play_sound(jup_a12_bandit_threat_to_prisoner)%
on_game_timer = 25 | %+jup_a12_chief_bandit_kill_prisoner%
def_state_moving = rush
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone

[walker@kill_prisoner]
path_walk = bandit_chief_kill_prisoner_walk
path_look = bandit_chief_kill_prisoner_look
def_state_standing = threat_na
on_info = {+jup_a12_stalker_prisoner_dead} walker@stand
combat_ignore_cond = {!check_enemy_name(jup_a12_stalker_prisoner)} true
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone

[walker@stand]
path_walk = bandit_chief_stand_walk
path_look = bandit_chief_stand_look
def_state_standing = wait_na
meet = meet@bandit_chief_stand
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
out_restr = jup_a12_sr_bandit_bodyguard

[death]
on_info = %+jup_a12_bandit_out%

 

Экспериментировал с ситуацией  перестрелки (агрессивный метод вызволения Митяя из тюрьмы).

Убил всех, кроме Шишака. В комнате такая картина - Шишак готовится прострелить башку Митяю. Что-то он там борматнул, и начал пытаться попать в голову Мите, отходя от него на 6-7 метров. Попав с раза так 8-9, он агрится на меня.

Странно, но что-то быстро Шишак начал убивать Митяя. Глупо довольно - "Ещё шаг, и он жмур!", ГГ после этого ни шагу, а Шишак сразу начал валить Митю. И ведь прекрасно понимая, что сейчас его завалят. Сам же при переговорах говорил, что "Цену жизни знает". Четверть секунды у игрока на то, чтобы попасть Шишаке в башку. Или тот грохнет Митю. И не факт, что попадёт.  В такой ситуации надо на переговоры идти, пытаться жизнь свою сохранить. Ну или застрелиться.  Это уж моё личное мнение. Или ИМХО, кто как понимает. Но в итоге:

1)Шишак - камикадзе с пистолетом. 

2)ПЫС решили, что у бандитов совсем мозгов нет.

Изменено пользователем Капитан Кузьмичёв
Ссылка на комментарий

Подскажите, пожалуйста, что нужно прописать в логике НПС (в ЗП), чтобы он при тревоге не бежал мочить актора, а шёл занимать ближайший боевой смарткавер как в  ЧН и отстреливался? 

Писал в Скриптование, а попал сюда. Чудеса! :)


О да, получилось! Экспериментировал с единственным вменяемым человеком - наблюдателем b204.

[logic@jup_b204_watchman]


suitable = {=target_squad_name(jup_b204_squad) !is_squad_commander} true
active = smartcover@bridge
on_death = death

[smartcover@bridge]
path_walk = smart_cover_0026;way_01_walk
;path_look = way_01_look
on_info = {-jup_b204_actor_observed =see_actor =dist_to_actor_le(50)} %+jup_b204_actor_observed =make_actor_visible_to_squad(jup_b204_squad)%
on_info2 = {!is_squad_enemy_to_actor(jup_b204_squad)} %=set_squad_enemy_to_actor(jup_b204_squad)%
cover_name = jup_smart_cover_0026
cover_state = default_behaviour
use_in_combat = true
invulnerable = true

[death]
on_info = %+jup_b204_wachman_dead%

 

Результатhttp://i-fotki.info/19/293333edac01a7d91c053bf859d7c4032efea5210550255.jpg.html

Теперь. покопавшись в логике и прочем, можно попытаться имитировать перестрелку или что-то типа того.
Jup_smart_cover_0023 лучше не использовать, т.к. там нпс двигается сквозь дверь грузовика.

Изменено пользователем Капитан Кузьмичёв
Ссылка на комментарий

Господа, кто хорошо знает спавн Зова, как двери называются, те которые на станиц Янов? Думаю понятно выразился.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

А зачем его знать - открыл СДК и посмотрел;) :(jup_physic_door, jup_physic_door_0000),  (jup_physic_door_0001, jup_physic_door_0002) - по группам с каждой стороны.


@Капитан Кузьмичёв, только в логике в секции смарткавера path_walk - лишнее, это только для логики нпс на путях way. Достаточно cover_name.

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

Да. у меня и без путей работало.

Эх, мне бы список всех боевых смартковеров с указанием месторасполажения и скриншотами. :beach:

А то проверять каждый, а их больше 300, и это только на Юпитере... :wacko:  :blink:


Ещё, а сталкеры в Аллспавне COP прописаны? Лазил там, но не разу не заметил кого-то из сталкерской братии. 

Изменено пользователем Капитан Кузьмичёв
Ссылка на комментарий

@Капитан Кузьмичёв, нпс в ЗП респавнятся  через сквады в смарт-террейнах (или в файле simulation.ltx спавнятся со старта игры в нужных смартах) - в аллспавне их нету. Статей про это - миллион, рекомендую почитать на той-же сталкервики.

По смарткаверам - поставь СДК, декомпиль локу и смотри наздоровье, что где стоит. А вообще тыща пиццот боевых смарткаверов на локациях ЗП считаю ненужным (у себя удалил) - в движковом комбате неписи тупят и неохотно туда прячутся. А для логики нужные смарткаверы сам расставляю.

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

Как-то решал в СДК попробовать поработать - Жуть Высшего класса! 

Снёс не задумываясь.

Вот и думаю, что придётся с этой ужасной вещью работать, когда новые локи подключу.

Ну, лично мне смарткаверы нужны для сцен перестрелок наподобие у моста в Лиманск в ЧН, в Госпитале и самом Лиманске.

А заставлять НПС в бою ими пользоваться не очень то хочется.

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

@Капитан Кузьмичёв, я несколько раз ставил СДК и сносил, нифига не понимая в нем, даже почитав уроки на этом форуме. Если хочешь нормально заниматься моддингом сталкера, то лучше освоить этого зверька. Дело в том, что многие новички думают, что сдк нужен только если ты маппер, делаешь локи и все такое. На самом деле, в СДК гораздо удобней и быстрее работать с тем-же спавном, даже на готовых игровых локациях.

Проблема в том, что мало комплексных туториалов по работе с СДК и конфигами, в основном все уроки были (да и сейчас многие) по принципу "тыкай в такие-то кнопки и должно получиться". Мне лично прочтение документации, идущей с СДК 0.7 дало гораздо больше, чем многие статьи. Прежде всего, важно понять механизмы взаимодействия, происходящие в игре: спавн и поведение нпс, смарт-террейны, аи-сетка, граф-поинты и проч - когда, разберешься, как работает этот организм, то все остальное будет несложно. Посмотри хотя-бы видеоуроки Андрея Непряхина. ИМХО не самые правильные и понятные, но человек хотя-бы как-то попытался систематизировать туториалы, за что ему огромный респект.

Быстро и просто конечно все равно не будет.

Изменено пользователем Clayman
  • Спасибо 1
Ссылка на комментарий

Капитан Кузьмичёв, если работаешь с ACDC, то в спавн-файле Рыжего леса ЧН найди секцию моста (red_forest_bridge) и скопируй к себе. Он реализован в виде динамической модели, спавн-элемент. Вангую, в оригинальном ЗП игра заругается на неизвестную секцию, но её так же нужно будет найти в распакованном ЧН и скопировать к себе в мод.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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

Модель моста тоже откопать из гамедаты ЧН придётся?

Я уже пробовал из аллспавна ЧН перенести. Заругался ЗП.

А где её найти, секцию эту, и скопировать?

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

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

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

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

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

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

Войти

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

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

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