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

Скриптование


Svoboда

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

Прошу помощи в поиске ошибки:

Вновь созданные НПС по выдаче инфопоршня спавнятся в разных районах локации, 1-я группа которая возле ГГ передают сообщение по рации 2-й группе (суть ситуации напоминает ту когда при входе ГГ на Дикую Территорию снайперы вызывают Волкодава):

дополнительная строчька в script_sound:

[pri_killer_taras_hello_rnd]

stalker = 0,scenario\pri\naymit_taras_racia

сами звуки:

sounds\characters_voice\scenario\pri\naymit_taras_racia.ogg

sounds\ambient\random\naymit_taras_racia.ogg

 

1. [logic]

active = walker@zasada_pripyat

active = remark

 

[walker@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

;-- soundgroup = pri_killer_taras_hello (пробовал подключать эту строку толку нет, был вылет без лога)

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

 

[remark]

no_move = true

target = actor

snd = pri_killer_taras_hello

anim = claim

on_signal = sound_end | walker1@zasada_pripyat %play_snd(characters_voice\scenario\pri\naymit_taras_racia)%

meet = no_meet

 

[walker1@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

 

[danger_ignore]

ignore_distance = 5

 

[smart_terrains]

none = true

 

2. [logic]

active = walker@zasada_pripyat

active = sr_sound_act

 

[walker@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[sr_sound_act]

snd = pri_killer_taras_hello

delay = 2

delay_max = 4

on_signal = sound_end | walker1@zasada_pripyat

 

[walker1@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[danger_ignore]

ignore_distance = 5

 

[smart_terrains]

none = true

 

3. [logic]

active = walker@zasada_pripyat

active = sr_sound_act

 

[walker@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[sr_sound_act]

snd = characters_voice\scenario\pri\naymit_taras_racia

delay = 2

delay_max = 4

on_signal = sound_end | walker1@zasada_pripyat

 

[walker1@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[danger_ignore]

ignore_distance = 5

 

[smart_terrains]

none = true

 

4. [logic]

active = walker@zasada_pripyat

active = sr_sound_act

 

[walker@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[sr_sound_act]

snd = ambient\random\naymit_taras_racia - как в примере 3.9.3. Секция [sr_sound]

delay = 2

delay_max = 4

on_signal = sound_end | walker1@zasada_pripyat

 

[walker1@zasada_pripyat]

path_walk = wave1_bomber_walk2

path_look = wave1_bomber_look2

def_state_moving1 = assault

def_state_moving2 = assault

meet = no_meet

danger = danger_ignore

combat_ignore_cond = {!check_fighting(808) !fighting_actor} ;always

show_spot = true

 

[danger_ignore]

ignore_distance = 5

 

[smart_terrains]

none = true

 

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

Возможно, им надо прописать в профиль диалог <start_dialog>hello_dialog</start_dialog> (ели это как то влияет)?

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

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

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


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

Arhara

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

В данной [logic] хотел вместо второго active поставить danger = danger_condition, но как то не придал этому особо значения - приоритет задачи был иной), ведь на ожидаемый результат это не повлияло, в своих рабочих [logic] для других засад под walker и снайперов под camper второго active пока не ставил (пока на время роста) :)

1. Но, для этого товарища логика бралась из (невымышленного) гулага BOMBER: WAVE на локации Припять (gamedata\config\misc\gulag_pripyat, строка 402 с небольшой корректировкой).

Главная суть этих экспериментов была не создать логику поведения для нового НПС, а именно отыграть звуковой эффект при входе ГГ в рестиктр, то и по совету других при тестировании их на локации Кардон посадил его на [remark] no_move = true - дабы не убежал пока я до него иду ;)

2. Для данного "старта" вроде и выбрал walker с подключением

"]3.9.9. Sr_sound_act

 

Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки

[sr_sound_act]

snd = ambient\random\new_drone1 --имя звукового файла

 

* delay = 2000 --задержка перед проигрыванием

* delay_max = 4000 -- между проигрыванием звука будет взят случайный промежуток между delay и delay_max.

* on_signal = sound_end | nil --по сигналу можно перейти в другую секцию.

 

theme = <имя темы из ph_sound_themes>

http://stalkerin.gameru.net/wiki/index.php...1%D1%82%D1%8C_3

хотя подозреваю если попробую какого нибудь из новых или существующих в оригинале снайперов пол camper то результат будет тот же - подозреваю тут причина в другом <_<

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


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

Более менее разобрался выдачей звуковых схем из логики НПС

http://www.amk-team.ru/forum/index.php?showtopic=6458&view=findpost&p=260737

хотя вот с секцией http://stalkerin.gameru.net/wiki/index.php/%D0%A7%D0%B0%D1%81%D1%82%D1%8C_3

- так до конца и не ясно, запустить её не получилось, а ссылку на её применение видел лишь http://www.amk-team.ru/forum/index.php?showtopic=6458&view=findpost&p=481827

как видно при записи её в alife (через all.spawn)?

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


Ссылка на сообщение
Я прописал им простую логику:

[logic]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

Но когда они встречают врагов они приседают и начинают стрелять а потом не встают

Это "не логика", такую я обычно использую только для тестов (так как при малейшей опасности НПС теряют управление прописанное в remark1 и переходят на пародию "универсального комбата").

Поэтому, ты определись чего от них хочешь (патруль - walker или снайпер - camper) и можешь им прописать в кастомдате эти "универсальные для всех локаций" (только снайпер там одноразовый - из расчёта, что ты всё же дашь ему бой при первой встрече иначе вставляй ему свои пути path_walk = ... path_look = ... )

1. Патруль который при виде врага или друга сперва говорит по рации (в зависимости от дистанции) и после атакует (бывает сразу):

[logic]

active = remark@raciya

danger = danger_condition

meet = meet

 

[remark@raciya]

anim = backoff2

snd = killer_vrag_enemy

no_move = true

target = actor

meet = meet@raciya

on_signal = sound_end| walker@patrol

danger = danger_condition

 

[meet@raciya]

meet_state = 35|guard_rac@killer_vrag_enemy

meet_state_wpn = 45|guard_rac@killer_vrag_enemy

victim = 35|actor

victim_wpn = 35|actor

use = true

use_wpn = true

meet_dialog = escape_lager_guard_start_dialog

 

[walker@patrol]

path_walk = bar_dolg_veterans_guard_bunker_1_walk

path_look = bar_dolg_veterans_guard_bunker_1_look

def_state_moving1 = patrol_fire

def_state_moving2 = patrol_fire

def_state_moving3 = patrol_fire

on_info = {=npc_distance_to_waypoint(bar_dolg_veterans_guard_bunker_1_walk:60)} nil

danger = danger_condition

show_spot = false ;true

 

[danger_condition]

ignore_distance_corpse = 0

ignore_distance = 0

 

[smart_terrains]

none = true

 

2. Снайпер (сидячий-стоячий), тоже при виде врага говорит по рации (от дистанции к цели), затем атакует - да и постоянно держит ГГ на мушке

[smart_terrains]

none = true

 

[logic]

active = remark@start

combat_ignor = combat_ignore

meet = meet

 

[remark@start]

no_move = true

radius = 0

anim = hide

snd = cit_jail_guard_sneer

target = actor

;on_info = {=health_le(0.5)} remark@search

;on_timer = 80000| remark@search

on_signal = sound_end| remark@search

wounded = wounded@work

meet = meet

danger = danger_condition

 

[remark@search]

anim = hide

target = actor

on_info = {=see_actor} camper@snyper

wounded = wounded@work

 

[meet]

meet_state = 28|hide_s_left@wait| 4|hide_s_right@wait

meet_state_wpn = 28|hide_rac@mil_ara_ambush

victim = 28|actor

victim_wpn = 28|actor

use = true

use_wpn = true

meet_dialog = escape_lager_guard_start_dialog

 

[wounded@work]

hp_state = 0|wounded_heavy@help_heavy

hp_state_see = 0|wounded_heavy@help_heavy

hp_victim = 0|nil

hp_fight = 0|false

hp_cover = 0|false

 

[camper@snyper]

path_walk = mil_zomb_stalker_walk1

path_look = mil_zomb_stalker_look1

sniper = true

def_state_moving = assault

def_state_campering = hide_na ;threat_na

def_state_campering_fire = threat_sniper_fire

radius = 60

no_retreat = true

shoot = always

danger = danger_ignore

show_spot = false ;true

 

[combat_ignore]

combat_ignore_cond = {!actor_enemy}

combat_ignore_keep_when_attacked = false

 

[danger_ignore]

ignore_distance = 5

 

[danger_condition]

ignore_distance_corpse = 0

ignore_distance = 0

 

;)

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

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


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

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