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

Создание квеста


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

 AndreySol

Никак нет,сначала сидит в баре,после квеста должен идти на кордон,последние два смарта на срытой дороге..Сначала использовал имеющиеся смарты, потом создал свои - всё равно не идёт..((

 

На Агро наверно гулаг ,какой-то его подхватывает, у меня постоянно туда неписи уходят,когда логика не срабатывает...

 

Вот секция Кости 

[865]

; cse_abstract properties
section_name = stalker_sakharov
name = esc_kostya
position = -47.3829193115234, -9.01544189453125, -116.972999572754
direction = -0.943036198616028, 0, 0.332690209150314
id = 65535
version = 118
script_version = 6
spawn_id = 840

; cse_alife_trader_abstract properties
character_profile = esc_kostya

; cse_alife_object properties
game_vertex_id = 109
distance = 3.5
level_vertex_id = 231720
object_flags = 0xffffffbf
custom_data = <[smart_terrains]
esc_new_lager = true
svalka_lager = true
bar_lager = true
as_lager = true
pripyat_lager = true

esc_new_lager = {-kostya_walk}
svalka_lager = {+kostya_walk -kostya_svalka_taynik_start}
bar_lager = {+kostya_svalka_taynik_start -kostya_as_kamp}
as_lager = {+kostya_as_kamp -kostya_pripyat_kamp}
pripyat_lager = {+kostya_pripyat_kamp}

[spawner]
cond = {+kostya_taynik}
END
story_id = 9800
spawn_story_id = 9800

; cse_visual properties
visual_name = new\kostyarik

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

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

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 3
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -210.012176513672, -20.4213333129883, -153.268188476563
upd:o_torso = -0.000645029998850077, 0.0445535257458687, 0

; cse_alife_human_stalker properties
upd:start_dialog =

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


 

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

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

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Значит в Баре все-же сидит, т.е. bar_kornet_camp = {-kornet_esc} отрабатывает ? На Кордон должен идти - доходит или нет ? Или он даже в Баре не сидит ? Конкретнее, плиз...

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

В том то и дело,что не сидит, сразу идёт на Агро..(( Я его ловлю ,проверяю диалог, и беру квест, непись должен сидеть в баре, пока по квесту добегаю до ДТ - он уже на Агро...((( И с последующими диалогами, инфопоршинами - он с Агро не уходит, "остаётся там жить".. :dash2:  :dash2:  :dash2:  :dash3:  :dash3:  :dash3:

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

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

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

AndreySol

 

Да, все гулаги прописал, вот только не знаю - я спрашивал ещё в первый раз - предикат использовать нужно?

В общем так не выходит, даже попробовал такую 

custom_data = <<END
[smart_terrains]
none = true
 

[logic]

active = kamp@bar_kornet

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[kamp@bar_kornet]

center_point = bar_kornet_camp_camp_center

on_info = {+kornet_esc} kamp@kornet_esc

 

[kamp@kornet_esc]

center_point = esc_kornet_brigada_camp_center

on_info = {+kornet_road} kamp@kornet_road

 

[kamp@kornet_road]

center_point = road_kornet_brigada_camp_center

on_info = {+kornet_road_kamp} kamp@kornet_road_kamp

 

[kamp@kornet_road_kamp]

center_point = road_kornet_brigada_end_camp_center

 

[spawner]

cond = {+kornet_bar}

END

story_id = 10009

spawn_story_id = 10009

 

 

 

 

"bar_kornet_camp_camp_center"  - это уже чисто вейпоинт.

После спавна нпс сидит в баре как положено, но после диалога(когда срабатывает инфопоршин) вместо того чтобы идти на кордон , он наглухо зависает на одном месте, не поговорить, даже стрельба по нём бесполезна, и сейв лоад не помогает...

 

Вобщем решил вернуться к другому способу,т.е. когда ему нужно переходить на кордон - спавним на кордоне такого же нпс,с другой логикой, а этого в баре удаляем,я с начала так и делал,но столкнулся с проблемами функций спавна и удаления нпс...Как правильно заспавнить непися скриптом и присвоить ему свой сид?У меня вообще никак не хочет присваиваться сид , и из-за этого при квесте нет метки на карте, и при удалении нпс - он не удаляется, т.е. пока этот непись доберётся до конца своего пути - их уже будет 3 одинаковых...

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий
я спрашивал ещё в первый раз - предикат использовать нужно

так и я спрашивал

к примеру в bar_kornet_camp как работа для этого непися прописана

фрагмент кода покажи из load_job, где расписан гулаг bar_kornet_camp.

 

... даже попробовал такую

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

 

А "другой способ" это фигня, извиняй за выражение. Поправить выдачу работ в гулагах - проще и правильнее.

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

 AndreySol

 

 

фрагмент кода покажи из load_job, где расписан гулаг bar_kornet_camp.

if type == "bar_kornet_camp" then

t = { section = "logic@bar_kornet_camp",

idle = 0,

prior = 9, state = {0},

in_rest = "",out_rest = ""

}

table.insert(sj, t)

end

 

 

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Вроде нормально все, теперь давай в студию load_states и checkStalker, а так же какой community прописан неписю ?

И еще неплохо бы проверить - может место в bar_kornet_camp успевает занять какой-то другой непись, подходящий по community и твоему корнету просто уже нет места ? Вот он и уходит в другой гулаг.

 

Попробуй прописать предикэйт во все нужные гулаги...

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

  AndreySol

 

Нашёл ошибку - левел вертекс смарта левый стоял,сейчас в баре всё норм,но на кордон отказывается идти, после инфопоршина так же уходит на Агро.  :dash2:  :dash2:  :dash2: Буду копать дальше сейчас пытаюсь отправить в имеющийся рабочий гулаг...У меня пара вопросов по квесту : 1)Как сделать чтоб артикл указывал метку не на НПС, а на опред. место на карте,обведённое кругом?Ну типа место встречи..

2)По диалогам, появление опред. диалога определяется инфопоршином( <has_info>kornet_esc_dialog</has_info>), как сделать, чтоб диалог появился после того, как непись дойдёт до указанного места?А то диалог появляется сразу после,того как поговорили в баре, а нужно чтоб он появился после встречи на кордоне...Куда можно повесить инфопоршин?А то через рестриктор не срабатывает.. 

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

1) Заспавнить на нужном месте объект(лучше рестриктор, его можно будет использовать для логики квеста), у которого будет прописан стори_ид, зарегистрированный в файле gamedata\config\game_story_ids.ltx. На этот объект повесить метку нужного типа. Как вариант: если нужное место - существующий кэмп(ну обычно бочка с костром), можно попробовать задействовать рестриктор костра.

 

2)

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

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

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

 

 

Как раз на рестриктор и будет лучше всего.
Сугубо ваше мнение.

Создавать ещё один игровой объект, который обновляется, к слову, через stalker_binder - да, очень правильно...

Выдать инфопорцию можно и через логику. Установить флаг по приходу на нужную точку, а в логике прописать условие on_signal = имя сигнала|%+имя инфопорции% - вот это, мне кажется, куда правильнее.

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

Всё решил, доделал квест,инфопоршин повесил на рестриктор - так или иначе он там необходим...

AndreySol

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

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

 

 

Создавать ещё один игровой объект, который обновляется, к слову, через stalker_binder - да, очень правильно...

А перевод рестриктора в nil по завершению его активности еще никто вроде не отменял....

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

@AndreySol, вот только при каждой загрузки такие рестрикторы всё равно проходят весь свой "путь" работы вплоть до nil. Чтобы такой рестриктор больше не приносил неудобств его нужно удалять, а не в nil переводить. Учи мат часть.

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

 

 

вот только при каждой загрузки такие рестрикторы всё равно проходят весь свой "путь" работы вплоть до nil. Чтобы такой рестриктор больше не приносил неудобств его нужно удалять, а не в nil переводить.

Чет мне нигде не попадалось в оригинале от ПЫСов, чтоб они вместо отключения рестриктора переводом в nil удаляли отработавшие свою логику...

Да и утверждение Ваше спорное, насчет прохождения рестрикторов при каждой загрузке по всей своей логике до nil.

Ну к примеру такая логика рестриктора:

[logic]active = sr_idle
 
[sr_idle]
on_actor_dist_le_nvis = 70 | sr_idle@check_start_graveyard
 
[sr_idle@check_start_graveyard]
on_info = {-gar_start_quest} sr_idle@start_graveyard %=gar_send_bes_alarm%
on_info2 = {+gar_start_quest} nil
 
[sr_idle@start_graveyard]
on_timer = 17000 | nil %+gar_start_quest =gar_dm_bandits_fight%

в ф-ции gar_send_bes_alarm выдается сообщение актеру и проигрывается звук.

По Вашему утверждению, при каждой загрузке сохраненки логика этого рестриктора будет отрабатывать заново ? Тогда при каждом приближении к рестриктору на установленное расстояние эта ф-ция будет отрабатывать ? Чет у меня это не происходит...

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

@AndreySol, пффф, флаги вейпоинтов для дебилов, ага? Всяко лучше рестрикторов нагородить, вы с фантомом покорешитесь стопудово, тот тоже любитель везде где ни попадя их юзать :D

Добавлено FantomICW,

Ты все "шутки юмора" гоняешь?

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

 

не всегда в логике присутствуют вейпоинты.В моём случае их нет, у меня непись "путешествует" между гулагами, т.е. вейпоинт - 1 точка камп, в гулаге, у нпс нет точек путей - он сам шагает от гулага к гулагу...= без рестриктора никак...

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@Romann, ещё как - как! Всё дело в том, что кто-то не умеет их применять - а это уже другой разговор.

Если он "путешествует" от гулага к гулагу, то ведь придя во второй он придёт на работу, которая будет его ждать - выдать инфопорцию там разве проблема?

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

 

 

то ведь придя во второй он придёт на работу, которая будет его ждать - выдать инфопорцию там разве проблема?

Ну во первых работа - это точка камп(повторяюсь сядет у костра), а там будет не один непись......

 

 

 

ну если вам сильно хочется рестрикторы юзать, то юзайте.

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

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

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

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

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

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

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

Войти

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

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

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