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

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


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

[873]
 
; cse_abstract properties
section_name = stalker
name = esc_poter
position = 1.1648344993591,2.2486491394043,61.42854309082
direction = 0,0.00316426996141672,0.062321275472641
version = 118
script_version = 6
 
; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_poter
 
; cse_alife_object properties
game_vertex_id = 89
distance = 9.80000019073486
level_vertex_id = 278058
object_flags = 0xffffffbf
custom_data = <<END
 
[spawner]
cond = {+elev_zone_psih} 
 
[logic]
active = patrol
danger = danger_ignore
 
[danger_ignore]
ignore_distance = 10
ignore_distance_grenade = 10
ignore_distance_corpse  = 0
ignore_distance_danger_hit = 20
ignore_distance_sound   = 0 
danger_inertion_time_hit = 1
 
[patrol]
def_state_moving = rush
path_walk = esc_poter_walk
END
story_id = 5484
 
; cse_visual properties
visual_name = actors\novice\green_stalker_2
 
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1
dynamic_out_restrictions = 
dynamic_in_restrictions = 
upd:health = 1
upd:timestamp = 0x617a6b75
upd:creature_flags = 0x6b
upd:position = 1.1648344993591,2.2486491394043,61.42854309082
upd:o_model = 0
upd:o_torso = 0.00316426996141672,0.062321275472641,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5
 
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0
equipment_preferences = 2,2,0,1,1
main_weapon_preferences = 0,2,0,2
 
; cse_ph_skeleton properties
 
; cse_alife_human_stalker properties
upd:start_dialog = 
 
; se_stalker properties

 
Прописал условие появление сталкера, если он получит инфопоршень elev_zone_psih, то он соспавниться.
[spawner]
cond = {+elev_zone_psih}
Но он почему-то игнорирует данное условие. Не понимаю в чем может быть ошибка.
В свое время данную инфопорцию выдает space_restrictor.
 

[874]
 
; cse_abstract properties
section_name = space_restrictor
name = elev_zone_psih
position = 1.1648344993591,2.2486491394043,61.42854309082
direction = -0.000350999995134771,-0.0109850000590086,0.0319279991090298
version = 118
script_version = 6
 
; cse_alife_object properties
game_vertex_id = 89
distance = 0
level_vertex_id = 278058
object_flags = 0xffffff3e
custom_data = <<END
 
[spawner]
cond = {+kuznecov_pogovoril_2} 
 
[logic]
active = sr_idle
 
[sr_idle]
on_actor_inside = %+elev_zone_psih%
END
story_id = 5485
 
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 28.99492645263672
 
; cse_alife_space_restrictor properties
restrictor_type = 3

У него тоже имеется условие что после разговора с определенным НПС выдается инфопорция которая дает разрешение на спавн space_restrictor.

 

NL-Vincenz.gif

Но он почему-то игнорирует данное условие.

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

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

function spawn_test()
local text = "спавним"
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end

 

пропиши в xr_effects.script, затем добавь ее вызов

[sr_idle]

on_actor_inside = %+elev_zone_psih =spawn_test% 

 

Увидишь сообщение - значит рестриктор заспавнен и отработал появление актора в своей зоне...

 

Блин, чет я не смотрю на все внимательно - а с каких пор у нас рестрикторы по спавнеру спавнятся ? Спавнер для них не работает. Вот и решение твоей проблемы!

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

@UnLoaded, Спасибо!

В таком случае как написать в on_actor_inside = %+elev_zone_psih% так что-бы при получении определенной инфопорции (например kuznecov_pogovoril_2), выдалась вот эта: elev_zone_psih..  :russian_ru:

NL-Vincenz.gif

@NL-Vincenz, очевидно:

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {+kuznecov_pogovoril_2} nil %+elev_zone_psih%

[spawner] для зон не существует.

  • Спасибо 1

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

Сталкер - наше всё!

чтобы при его взятии у ГГ увеличивалась сумма на кармане?

Ну это-же элементарно, Ватсон :)

Сделать инвентарный предмет на классе к примеру хлебушка. Тока поменять визуал на пачку денег(туго набитый мешочек), и подсказку сменить: вместо "Съесть" на как Вам захочется. По факту употребления добавлять денег в нужном кол-ве, которое можно прописать новым параметром в конфиге этого добавленного предмета(и соответственно вычитывать при выполнении действия). Можно и по факту взятия в инвентарь(или on_use или  on_item_take) - на что повесите, то и будет...

 

@NL-Vincenz

on_actor_inside = {+kuznecov_pogovoril_2} nil %+elev_zone_psih%

здесь nil - перевод спейс_рестриктора в неактивное состояние, чтоб отработав свое, более ресурсы движка не кушал...

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

 

 

Тока поменять визуал на пачку денег(туго набитый мешочек), и подсказку сменить: вместо "Съесть" на как Вам захочется. По факту употребления добавлять денег в нужном кол-ве, которое можно прописать новым параметром в конфиге этого добавленного предмета(и соответственно вычитывать при выполнении действия). Можно и по факту взятия в инвентарь(или on_use или on_item_take) - на что повесите, то и будет...

Вот и я в этом же направлении подумал. А вешать именно по факту появления в инвентаре (поначалу хотел их именно съедать).

 

Тогда еще вопрос: если вешать на on_item_take (это ведь появление в инвентаре), можно ли его сразу того... удалить? Берешь в инвентарь - предмет удаляется и бабло добавляется? Можно ли удалить именно СРАЗУ, в одном обработчике?

Сталкер - наше всё!

 

 

Можно ли удалить именно СРАЗУ, в одном обработчике?
Можно. Обработчик срабатывает по факту появления объекта в инвентаре - следовательно делай с ним что хочешь...
  • Спасибо 1

Идея возникла, может, бредовая: а можно ли поговорить с Монолитом? Он же вроде, физический объект?

Сталкер - наше всё!

а можно ли поговорить с Монолитом? Он же вроде, физический объект?

И что ? Почитай на Вики раздел "A-Life - статьи об использовании ССЖ A-Life". Разберешься - будет у тебя и Монолит разговаривать...

 

Ответ ни о чём. Какая из статей по указанному адресу имеет отношение к сути заданного вопроса? Malandrinus

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

@AndrewMor, в привычном смысле этого слова - нельзя (ну разве что ты со всякими бочками не говоришь, но вроде большинство - не говорят). Сделай на CUIWindow подобие диалогового окна, ну и вызывай при юзе.

 

@Malandrinus, подобные операции с созданием подобия физобъекта на основе людей/торговцев у меня ничем положительным не закончились. Хотя вот помнится в огсе 0692 что-то подобное было, но как это будет выглядеть с монолитом я не знаю, нужно тестировать. Поэтому советовать не стал.

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

можно ли поговорить с Монолитом? Он же вроде, физический объект?

Технически говоря, вопрос сводится к задаче вызвать стандартный диалог разговора для неживого объекта. Строго говоря, это невозможно, поскольку диалог можно вызвать только для сталкеров и торговцев. Но можно как-то обойти это. Я вижу два пути:

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

2. (меня опеределили) сделать своё окно диалога.

  • Нравится 1
 

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

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

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

 

Так голограмма из оригинала же.

Анимации - ну так оставить один стэйт, и все.

 

Можно - человека-нивидику.

 

Ну или еще банальнее - вспомнить "автоквесты".

 

Наконец, ни кто не мешает просто рисовать прямоугольные кнопки с текстом прямо тупо на экране. Как те артоконтейнеры, к примеру.

  • Спасибо 2
Подскажите как называется анимация при которой НПС бежит как угорелый, пример Стрелок в ЧН когда бежит по Рыжему Лесу. Ибо логика моего НПС такова:

[873]
 
; cse_abstract properties
section_name = stalker
name = esc_poter
position = 1.1648344993591,2.2486491394043,61.42854309082
direction = 0,0.00316426996141672,0.062321275472641
version = 118
script_version = 6
 
; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_poter
 
; cse_alife_object properties
game_vertex_id = 89
distance = 9.80000019073486
level_vertex_id = 278058
object_flags = 0xffffffbf
custom_data = <<END
 
[spawner]
cond = {+elev_zone_psih} 
 
[logic]
active = walker
danger = danger_ignore
 
[danger_ignore]
ignore_distance = 10
ignore_distance_grenade = 10
ignore_distance_corpse  = 0
ignore_distance_danger_hit = 20
ignore_distance_sound   = 0 
danger_inertion_time_hit = 1
 
[walker]
path_walk = esc_poter_walk
def_state_moving1 = sprint
def_state_moving2 = sprint
def_state_moving3 = sprint
END
story_id = 5484
 
; cse_visual properties
visual_name = actors\novice\green_stalker_2
 
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1
dynamic_out_restrictions = 
dynamic_in_restrictions = 
upd:health = 1
upd:timestamp = 0x617a6b75
upd:creature_flags = 0x6b
upd:position = 1.1648344993591,2.2486491394043,61.42854309082
upd:o_model = 0
upd:o_torso = 0.00316426996141672,0.062321275472641,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5
 
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0
equipment_preferences = 2,2,0,1,1
main_weapon_preferences = 0,2,0,2
 
; cse_ph_skeleton properties
 
; cse_alife_human_stalker properties
upd:start_dialog = 
 
; se_stalker properties

А пути:

[esc_poter_walk]
points = p0,p1
p0:name = wp00|a=sprint
p0:position = 1.1648344993591,2.2486491394043,61.42854309082
p0:game_vertex_id = 89
p0:level_vertex_id = 278058
p0:links = p1(1)
 
p1:name = wp01|a=sprint
p1:position = 114.13582374023,3.6140494346619,92.052780151367
p1:game_vertex_id = 159
p1:level_vertex_id = 416481
p1:links = p0(1)

Проигрывает совсем не то..

Изменено пользователем NL-Vincenz

NL-Vincenz.gif

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

Так я уже попытался и ничем путным это не закончилось. На синхронизации вылет по костям (лога при себе нет, но ругань идет на bip01_head. Думаю, что такая же ругань пойдет и по другим костям (вернее, на их отсутствие в модели).

 

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

 

А стандартное окно диалога нельзя вызвать, чтобы не рисовать свое?

 

И про это я тебе уже сказал, стандартное окно вызывается для сталкера или торговца. Окну нужен объект-собеседник, откуда грузится профиль с диалогами. Нет собеседника, откуда грузить диалог?

Malandrinus

 

 

Проигрывает совсем не то..

А не raid случаем?

 

 

Можно - человека-нивидику.

Это как? Можно об этом поподробнее?

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

Сталкер - наше всё!

NL-Vincenz,

Чтобы нпс бежал как угорелый, надо в state_lib.script для состояния sprint - изменить mental = anim.danger на anim.panic (хотя лучше сделать копию блока sprint и переименовать, типа fast_run).

Malandrinus, затычки для костей - это не для меня (во всяком случае, в данный момент). А насчет стандартного окна диалога - сорри, невнимательно прочитал.

 

А почему создавать именно объект торговца, а не просто сталкера? Есть разница между секциями m_trader и stalker? Или это зависит от community (trader/stalker) в character_desc_имя_персонажа?

Сталкер - наше всё!

 

 

разница между секциями m_trader и stalker?

Разумеется есть. Торговец - это Сидор, объект намного более простой, нежели сталкер. У торговца на самом деле почти нет поведения, кроме поддержки диалогов и торговли. Из визуального поведения есть пара примитивных анимаций, которые вообще запускаются скриптом (т.е. по идее не обязательны) и верчение головой, которое как раз движковое. Вот для этого движкового поведения и нужна затычка в виде кости с нужным именем. А сталкер - это слишком сложный объект, который будучи просто создан уже имеет какое-то поведение, причём сложное. В принципе и его можно заставить просто стоять на месте, и только реагировать "на поговорить". Но тогда надо будет что-то сделать с его визуалом. Допустим, сделаем невидимые поверхности. Как тогда совместить его с нужным объектом для активации? На мой взгляд, лучше варианта со сталкером будет что угодно, в том числе написание своего диалога.

  • Спасибо 1
 

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

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

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

 

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

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

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

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

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

Войти

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

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

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