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

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


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

 

 

он просто виснет в первой ремарке

А что у него там такого сложного, он смотрит на ГГ, потом на вертолёт, потом бежит воевать. :wacko:

У этого костра с начала игры спавнятся пара сталкеров, там что, какой-то не задействованный kamp есть?

23949_98179818728.jpg

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

@dPlayer, тут дело не в логике, дело в т.н. пресетах, для каждого уровня есть свой набор настроек для различных сталкеров, сюда входят и ранги, и группировки, и оружие, и наверное что-то еще (досконально я с этим не разбирался), так вот, наверняка сказать что там кому можно давать, а кому нельзя, не представляется возможным. То есть сам уровень по различным настройкам не может принять такого персонажа на себя, далее идет нестандартное поведение, и оно может проявляться в чем угодно. Настроек этих хватает, и в двух словах о них рассказать не выйдет, наверняка ведь ты пробовал заспавнить на Кордоне сталкеров с крутым оружием, ну вот куда-то сюда это все и приходит, можешь тут же задуматься о наемниках с калашами, все в эту корзину.

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

dPlayer, он просто виснет в первой ремарке и на этом, собственно, все. Это, такая, на самом деле, подлость в ТЧ.

Что за подлость, а я не в курсе? По-моему разрабам просто не приходила в голову идея, что кому-нибудь через далёкие года захочется перевооружить того зелёненького человечка, и они, как это ни удивительно, сделали ему анимацию только для обреза.

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

Не пытайтесь делать слишком сложные сцены с переходами анимаций, особенно когда это не особо важно. В скриптах игры куча глюков. В предложенном примере стоит проверка на видимость и на дистанцию. Проверка на видимость не может быть вызвана из этой логики, потому что проверка на дистанцию сработает раньше и направит логику по первому условию.

on_actor_dist_le = 20 | remark@hello_actor -  всегда первой сработает эта секция.
on_actor_dist_le_nviz
= 10 | walker@wait_talk_to_actor

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

Что за подлость, а я не в курсе?

Слишком много неоправданных настроек, конкретный случай с анимацией лишь подчеркивает это. Многое заточено на сюжет и конкретное заселение, сравни эти сферы в ТЧ и ЗП, это разные вещи, в ЗП уже все более универсально. Изменено пользователем Карлан
Ссылка на комментарий

 

 

Не пытайтесь делать слишком сложные сцены с переходами анимаций

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

ЗЫ...А вот к примеру встреча Лысого с Бритым из фотографа - это слишком сложно или нет?

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

Тем не менее. Оригинал - логика Волка:

[walker@esc_lager_volk_walker1]
path_walk = wolf_walk
path_look = wolf_look
meet = meet@wolf
on_actor_dist_le = 23| {+tutorial_wounded_start -esc_kill_bandits_quest_kill} remark@esc_lager_volk1 
on_actor_dist_le_nvis = 5| walker@esc_lager_volk_walker2
danger = danger_condition@shustryi

@Карлан, мне посоветовал брать ее за образец для моего непися.

 

@_Val_, подробнее об этом неписе:

 

 

[logic]
active = walker@wait_actor
on_death = death

[walker@wait_actor]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
on_actor_dist_le = 20 | remark@hello_actor
on_actor_dist_le_nvis = 10 | walker@wait_talk_to_actor
danger = danger_condition@alex
meet = no_meet

[remark@hello_actor]
anim = hello
target = actor
meet = no_meet
on_timer = 4000 | walker@wait_talk_to_actor

[walker@wait_talk_to_actor]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@alex_squad_need_help
on_info  = {+generators_save_taurus} walker@after_start_task
on_info2 = {+generators_save_taurus_alternative} walker@after_start_alternative_task
on_info3 = {+generators_taurus_dead} walker@after_taurus_dead

[meet@alex_squad_need_help]
meet_state = 20| guard
meet_state_wpn = 20| threat@threat_weap
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = false
meet_dialog = {-generators_save_taurus} generators_alex_start_dialog


[walker@after_start_task]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@after_start_task
on_info = {+generators_taurus_back_to_alex_squad_complite} walker@after_complite_task
on_info2 = {+generators_taurus_dead} walker@after_fail_task

[meet@after_start_task]
meet_state = 20| guard
meet_state_wpn = 20| threat@threat_weap
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = false
meet_dialog = {+generators_save_taurus -generators_taurus_back_to_alex_squad_complite} generators_alex_taurus_save_in_progress_dialog 
 

[walker@after_start_alternative_task]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@after_start_alternative_task
on_info = {+generators_taurus_back_to_alex_squad_complite} walker@after_complite_task

[meet@after_start_alternative_task]
meet_state = 20| guard
meet_state_wpn = 20| guard
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = true
meet_dialog = {+generators_save_taurus_alternative -generators_taurus_back_to_alex_squad_complite} generators_alex_taurus_dead_hello_dialog


[walker@after_complite_task]
path_walk = generators_alex_walk_2
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@after_complite_task

[meet@after_complite_task]
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = true
meet_dialog = {+generators_taurus_back_to_alex_squad_complite -generators_save_taurus_task_talk_to_alex_complite} generators_alex_taurus_safety_dialog 


[walker@after_fail_task]
path_walk = generators_alex_walk_2
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@after_fail_task

[meet@after_fail_task]
meet_state = 20| guard
meet_state_wpn = 20| threat@threat_weap
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = false
meet_dialog = {+generators_taurus_dead +generators_save_taurus -generators_taurus_dead_talk_to_alex_complite} generators_alex_taurus_dead_dialog, {+generators_taurus_dead_talk_to_alex_complite} generators_alex_taurus_dead_hello_dialog


[walker@after_taurus_dead]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@after_taurus_dead

[meet@after_taurus_dead]
meet_state = 20| guard
meet_state_wpn = 20| threat@threat_weap
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = false
meet_dialog = {+generators_taurus_dead -generators_save_taurus -generators_taurus_dead_talk_to_alex_alternative_complite} generators_alex_taurus_dead_alternative_dialog, {+generators_taurus_dead_talk_to_alex_alternative_complite} generators_alex_taurus_dead_hello_dialog

[danger_condition@alex]
ignore_distance            = 30
ignore_distance_grenade    = 30
ignore_distance_sound      = 30

[death]
on_info = %+generators_alex_squad_dead%

[smart_terrains]
none = true 

 

 

 

Со старта он втыкает в бинокль. Если гг находится в радиусе обзора и ближе 20-ти метров от него - машет рукой, переходит к анимке guard (если гг с оружием, просим стволом в нас не тыкать). Если гг не в радиусе обзора и находится в менее чем 10-ти метрах от непися - сразу переходит к guard, без приветствия.

Разговариваем с неписем, берем квест - он переходит к walker@after_start_task. Он опять пялится в бинокль. При приближении гг переходит к анимке guard.

Если мы взяли квест не у него: walker@after_start_alternative_task - проделываем то же самое, что и в самом начале. Разве что диалоги другие. (надо будет добавить приветствие и туда)

Ну а дальше, по аналогии с прошлыми секциями: если выполнили задание: walker@after_complite_task, если провалили задание - walker@after_fail_task. Только в бинокль уже не пялимся.
Если важный для квеста персонаж погиб, во время его выполнения (он же альтернативный квестодатель): walker@after_taurus_dead.

Как-то так...

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

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

 

Ну, не знаю...

Я дал ему Тоз-34 пару лет назад. Он взял. И до сих пор с ним. Всё делает, как надо: целится в вертолёт, бежит стрелять военных.

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

@Fagot., возможно та анимка, заточена под конкретный класс оружия (?). И поскольку у обреза и Тоз-а они одинаковые - все ок. А вот если сунуть ему автомат...

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

Такс...

Первое. Я бы убрал таки анимку из точки пути в спавне и прописал бы её туда же в логику.

Второе. Нужно четко отрегулировать расстояния до ГГ(учитывая что игрок может реально спринтовать).

on_actor_dist_le = 20 | remark@hello_actor
on_actor_dist_le_nvis = 10 | walker@wait_talk_to_actor

[meet@alex_squad_need_help]
meet_state = 20| guard
victim = 20| actor

Указано одно и тоже расстояние для разных анимок. Даже с учетом того, что эти анимки вызываются из разных секций - это не есть хорошо.

Как-то так.

on_actor_dist_le = 25 | remark@hello_actor
on_actor_dist_le_nvis = 5 | walker@wait_talk_to_actor

meet_state = 5| guard
victim = 20| actor

 

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

@_Val_, вариант?:

[walker@wait_actor]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
on_actor_dist_le = 20 | remark@hello_actor
on_actor_dist_le_nvis = 5 | walker@wait_talk_to_actor
danger = danger_condition@alex
meet = no_meet

[remark@hello_actor]
anim = hello_wpn
target = actor
meet = no_meet
on_timer = 4000 | walker@wait_talk_to_actor
on_actor_dist_le_nvis = 5| walker@wait_talk_to_actor -- А может сунуть сюда? По аналогии с Волком

[walker@wait_talk_to_actor]
path_walk = generators_alex_walk_1
path_look = generators_alex_look
danger = danger_condition@alex
meet = meet@alex_squad_need_help
on_info  = {+generators_save_taurus} walker@after_start_task
on_info2 = {+generators_save_taurus_alternative} walker@after_start_alternative_task
on_info3 = {+generators_taurus_dead} walker@after_taurus_dead

[meet@alex_squad_need_help]
meet_state = 20| guard@wait           
meet_state_wpn = 20| backoff@threat_weap
victim = 20| actor
victim_wpn = 20| actor
use = true
use_wpn = false
syndata	= backoff@threat_weap
meet_dialog = {-generators_save_taurus} generators_alex_start_dialog
meet_state = 20| guard@wait             
meet_state_wpn = 20| backoff@threat_weap

Если я тут выставлю расстояние меньше указанного в on_actor_dist_le - непись опять возьмет бинокль, если гг недостаточно бизко. Нехорошо.

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

Убери к едреням пропись бинокуляра в олл-спавне. Пиши в нужной секции волкера.

И экспериментируй...Без этого никуда.

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

функцию set_meet. Чего ему надо то?

Ссылка из полностью рабочей сборки. Разумеется, я не ставил целью возможность закинуть это как есть в куда попало, и чтоб сразу "все стало совсем по-другому, но чтоб все осталось точно так, как было".

 

Смотрите, как работает - благо, вся "китайская лапша" распутана, и переносите к себе то, что нужно.

 

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

 

P.S. И, да, я попробую посмотреть, где данному конкретному скрипту чего не хватает такого, что у меня есть, а у других нет, и добавлю комментарии "как сломать все обратно". Но не более того.

 

 

К вопросу о "логике" - я ж уже писал: если там получается конструкция более сложная, чем пара строк по 15 символов - рассмотрите возможность заменить на вызов СВОЕЙ функции, которая сделает все нужные проверки. Ибо синтаксис с плюсиками и закорючками явно разрабатывался исходя из того, что все это будет генерировать робот, а не человек.

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

@Silver Raven, Ну так у Волка

on_actor_dist_le = 23| {+tutorial_wounded_start -esc_kill_bandits_quest_kill} ( вот здесь условие по которому отработает следущая секция - один раз)  remark@esc_lager_volk1
on_actor_dist_le_nvis
= 5| walker@esc_lager_volk_walker2 вот эта секция будет срабатывать после изменения условия +tutorial_wounded_start -esc_kill_bandits_quest_kill}

на 23 метра сработает всегда раньше чем на 5 видимого но отсутствие инфопорций исключат первую схему


@Silver Raven, Та же ошибка, у тебя всегда сначала сработает первое условие. Да нафиг ты с этим морочишься? Ты просто пытаешься перебить дефолтную схему встречи, которая уже в игре заложена со своими параметрами.

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

@gruber, в том-то и "прикол", что в отличии от Волка условия приветствия гг, если его видно и перехода к ожиданию разговора, если нет - одинаковы. Я даже не знаю как их разделить. Инфопоршни будут одинаковыми. А схему meet, я перебиваю из-за того, что она "кривая" и анимки там отыгрываются дерганно. Собственно, с guard это так и осталось. Этот meet надо вообще переделывать.

 

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

 

Для on_actor_dist_le_nvis можно попробовать выдавать инфопоршень из рестриктора с нужным радиусом, внутри которого будет непись. Но не люблю я их плодить понапрасну. Загружать апдейт.

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

 

 

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

Ну так он делает свой мод. Чем он будет отличаться по поведению неписей от оригинала, если везде будут использоваться дефолтные схемы?

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

@_Val_, Валера, тогда ему проще дефолтную под себя переделать, если не нравится.

@Silver Raven, Не надо ничего убирать, просто разберись с переключателями, ты их там сверх меры нагородил.

Дистанция 5 метров - на этой дистанции ГГ всегда видимый ( если только специально не ослепить неписей для какого то стелса), так что лишняя морока.

И еще - при изменении поинтов, ( с помощью АСДС) новая игра не нужна.

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

 

 

эта секция будет срабатывать после изменения условия

Вообще по уму эта секция сработает без применения каких либо условий. Ну кроме подкрадывания ГГ к Волку сзади..

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

@_Val_, Да, она будет срабатывать всегда кроме ситуации {+tutorial_wounded_start -esc_kill_bandits_quest_kill}

Да и сзади он не подкрадется, потому как неписю денжер задан, тоесть он всегда на стреме.

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

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

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

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

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

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

Войти

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

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

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