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

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


Halford

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

Зравствуйте.
Подключил к ЗП кордон из ЧН, переместил туда актора. Добавил в спавн НПСа с нужной мне позицией и дирекцией, но проблема, сталкер стоит на нужной позиции, но смотрит не в ту сторону(менял параметры дирекции по разному - результата нет). И так ведут себя все заспауненные. Как их "развернуть"?

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

Поделиться этим сообщением


Ссылка на сообщение

@Shredder,А что, без добавления направления в вэйпоинтах неудастся? По сути дела все заспауненые имеют дирекцию 0,0,0. Они туда автоматом поворачиваются?

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

Поделиться этим сообщением


Ссылка на сообщение

@Shredder,Графы сшивал прогой от АМК, и граф файл заметно потяжелел. 

Добавил нпсу в ремарк no_move, он стоит, но смотрит по прежнему в 0,0,0. Я просто незнаю, как сделать схему волкер, но чтобы при этом нпс постоянно отыгрывал определённую анимацию, смотря в определённое место...

Поделиться этим сообщением


Ссылка на сообщение

Короче, сделал НПСу схему волкер.
Добавил 2 вэйпоинта(1 точно на точке спауна нпс, а другой, в точке направления).
Чтобы это всё заработало, пришлось добавить в спавн спейс рестриктор, с логикой автосохранения. При запуске новой игры НПС стоял на нужной точке, но снова смотрел в 0,0,0, НО при загрузке автосейва, всё встало на свои места - нпс смотрел куда нужно.
Но когда вписал во флаг вейпойнта (вейпойнт walk) анимацию, она воспроизводилась. Однако как при новой игре, так и при сейве анимация была направлена в 0,0,0(анимация "binocular").
Вопрос: Как "направить" анимацию, и как сделать, чтобы при новой игре, всё спаунилось правильно (я так понимаю, чтобы запускалась алайф симуляция)?

 

 

[walker_scene1_walk]


points = p0
p0:name = wp00|a=binocular
p0:position = -192.100006103516, -19.5, -137.809997558594
p0:game_vertex_id = 956
p0:level_vertex_id = 59296

 

[walker_scene1_look]
points = p0
p0:name = wp00
p0:position = -191.809341430664,-19.5018310546875,-138.585067749023
p0:game_vertex_id = 956
p0:level_vertex_id = 59296

 

 

 

Спавн:
[644]

; cse_abstract properties
section_name = space_restrictor
name = esc_a1_logic
position = -247.026138305664, -24.8110198974609, -134.753448486328
direction = 0, 0, 0
id = 65535
version = 128
script_version = 12
spawn_id = 644

; cse_alife_object properties
game_vertex_id = 950
level_vertex_id = 13976
object_flags = 0xffffff3e
custom_data = <[logic]
cfg = scripts\esc\esc_a1_logic.ltx
END

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 3

Логика:
[logic]
active = sr_idle@game_start

[sr_idle@game_start]
on_info = {=actor_on_level(escape)} sr_idle@nil %=damage_actor_items_on_start +esc_a1_game_start =scenario_autosave(st_save_start_escape)%

[sr_idle@nil]

 

 

Спавн:
[642]

; cse_abstract properties
section_name = stalker
name = test_npc
position = -214.703048706055, -20.3582897186279, -147.068557739258
direction = 3.49065852165222,0,0
id = 65535
version = 128
script_version = 12
spawn_id = 642

; cse_alife_trader_abstract properties
money = 5000
character_profile = test_npc
cse_alife_trader_abstract__unk2_u8 = 1

; cse_alife_object properties
game_vertex_id = 1032
distance = 9.8000002
level_vertex_id = 39131
object_flags = 0xffffffbf
custom_data = <[logic]
cfg = scripts\esc\test_npc.ltx
END

; cse_visual properties
visual_name = actors\stalker_hero\stalker_hero_1

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
dynamic_out_restrictions =
dynamic_in_restrictions =

; cse_alife_monster_abstract properties
equipment_preferences = 1, 2, 0, 0, 2
main_weapon_preferences = 0, 1, 0, 0

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 1
upd:timestamp = 0x2694d60
upd:creature_flags = 0x30
upd:position = -214.703048706055, -20.3582897186279, -147.068557739258
upd:o_torso = 0.00212587113492191, 0.101435124874115, 0

; cse_alife_human_stalker properties
upd:start_dialog =
Логика:
[logic]
active = walker@scene2
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[walker@scene2]
path_walk = walker_scene1_walk
path_look = walker_scene1_look


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

Поделиться этим сообщением


Ссылка на сообщение

@karavan,Логика в отдельном файле, это тут я чтото не так написал походу.
Спейс рестриктор писал не для нпс, а для актора. Чтобы создавался автосейв при запуске новой игры.
Писал анимацию в лук - не воспроизводится.
Сейчас переименую вэйпоинты...

Поделиться этим сообщением


Ссылка на сообщение

@karavan,Сделал всё как ты написал. Результат тот же. Что при новой игре, что при сейве - анимация не "повернулась".
Насчёт смарта для нпс: когда переносил спавн из ЧН не удалял смарт террейны вообще (только если была лишняя логика - я её чистил). Удалил только смартковеры(из за них сдк ломался(видимо не подходят из чн в зп))
@FantomICW,Мне нужен нпс, который подчинён точной логике. Я делаю скриптовую сцену.

Собственно, так то всё работает. Но не в том направлении(хотя вейпоинт направления создан). Может быть и в look и в walk анимацию прописать? &D

Не помогло. Результат тот же.

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

Поделиться этим сообщением


Ссылка на сообщение

@FantomICW,Он явно стоит в смарте, это я ещё в сдк видел. Логика написана. Писал в look точно как ты написал - не работает, работает только в walk, но в направлении 0,0,0

 

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

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

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

Возник ещё один вопрос: Сделал мини базу. Там 3 костра на расстоянии, вокруг всех сделал аимпоинты, и рядом с каждым костром поставил по вэй поинту. В общем всё работает.
Заспаунил туда 3 сквада, каждый около одного костра (на вэй поинте), но как только игра загружается, они не садятся на ближайшую работу, а начинают мегрировать на другую работу, и перемешиваются все. Как бы им задать приоритет?

Поделиться этим сообщением


Ссылка на сообщение

Это единственный вариант? Если там рандомные нпсы спавнятся, их нельзя както направить?

 

Вот как-нибудь бы задать приоритет работам, думаю если бы можно было поставить на увелечение, то нпсы не расходились бы...

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

Поделиться этим сообщением


Ссылка на сообщение

Люди, подскажите.
Создал аимпоинт возле костра(рабочий), создал точку сна (рабочую, проверял), заспаунил сквад в виде 1 нпса. Нпс сидит у костра, приходит время сна (21,00), и он ведёт себя странно: начинает вставать, но тут его дёргает, и он снова садится, и всё остальное время дёргается, как будто аимпоинт его не выпускает. В чём причина?

; cse_abstract properties


section_name = smart_cover
name = loc_a1_animpoint_1
position = -185.842849731445, -20.223840713501, -157.601440429688
direction = 0, 0.872659981250763, 0
id = 65535
version = 128
script_version = 12
spawn_id = 575

; cse_alife_object properties
game_vertex_id = 22
distance = 20.299999
level_vertex_id = 64920
object_flags = 0xffffffbf

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 2

; cse_smart_cover properties
description = animpoint_sit_knee
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_sit_knee
loopholes = animpoint_sit_knee, 0

 

 

[loc_a1_sleep_1]
points = p0,p1
p0:name = wp00
p0:flags = 0x1
p0:position = -210.347534179688,-22.8600921630859,-124.829750061035
p0:game_vertex_id = 97
p0:level_vertex_id = 24480
p0:links = p1(1)

p1:name = wp01
p1:flags = 0x2
p1:position = -210.291580200195,-22.8931255340576,-126.678092956543
p1:game_vertex_id = 97
p1:level_vertex_id = 43432
p1:links = p0(1)



И да, в скрипте "gulag_general" поставил схеме sleep приоритет 20 (чтобы был выше чем у аимпоинта(15))

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

Поделиться этим сообщением


Ссылка на сообщение

Проблему решил, в анимпоинтах лупхолы были не включены. Но возник другой вопрос:
Если заспаунить сквад из нескольких нпс, то спать уходит нпс только с одного и того же анимпоинта (по крайней мере так было 4ро суток), рандом не придусмотрен?

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

@Shredder,Хмм, а что в ней за это отвечает то?

 

[logic]
active = ph_door@closed

[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open
on_info = {!check_smart_alarm_status(zat_stalker_base_smart:normal) !actor_in_zone(zat_a2_sr_light)} 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:normal) !actor_in_zone(zat_a2_sr_light)} 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
on_info2 = {=check_smart_alarm_status(zat_stalker_base_smart:alarm)} ph_door@locked_alarm
on_info3 = {=actor_in_zone(zat_a2_sr_light)} ph_door@closed
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon

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

 

 

В следующий раз "полотно" потру.

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

Дверь из секции "physic_door", может это связано с тем, что аи сетка просчитана на драфте? Если просчитать укрытия, может нпсы смогут открывать двери?

Поделиться этим сообщением


Ссылка на сообщение

@Shredder,Там идёт отсылка на скрипт "db.script", а в нём есть строка " level_doors  = {}", мне что, между скоб дверь нужно вписать?

 

Поделиться этим сообщением


Ссылка на сообщение

@Shredder,Да, вот такую:

[logic]


active = ph_door@close

[ph_door@close]
locked = false
closed = true
on_use = ph_door@open
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
hit_on_bone = 1|ph_door@free|2|ph_door@free

[ph_door@open]
locked = false
closed = false
on_use = ph_door@close
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
hit_on_bone = 1|ph_door@free|2|ph_door@free

[ph_door@free]
locked = false
closed = true
on_use = ph_door@open
no_force = true



Может быть из-за того что дверь слегка утонула в геометри?(не точно подходит по размеру)
Или из-за того что аи сетка проходит сквозь дверь? (дверь не лежит на аи сетке, она ниже её)



Нет, не из-за этого, поставил дверь на пути у нпс, ровно на землю, всё равно не может открыть.(нпс идёт на вэйпоинт сна)

Изменено пользователем FEET
  • Не нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@karavan,У меня там всё под смартом, во всех сквадах стоит таргет нейм = мой смарт, всё остальное работает как по маслу, а вот дверь что-то не может открыть...
Нпс то и идёт на работу смартовскую, но не судьба

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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