Jump to content

Recommended Posts

Всем привет. Может ли кто-то подсказать теорию работы схемы mob_jump? 
На практике я вообще не могу разобраться с принципами её работы, а гайд по настройке логики содержит 3,5 слова касательно mob_jump.
Ниже кидаю пример логики своего снорка.
 

Скрытый текст

[spawner]
cond = {+actor_in_rest_exit}

[logic]
active = mob_walker@first

[mob_walker@first]
path_walk = lv_snork_walk_00
path_look = lv_snork_look_01
braindead = true
on_signal = jump| mob_jump

[mob_jump]
path_jump = lv_snork_walk_01
ph_jump_factor = 4
offset = 0,0,0
on_signal = jumped| mob_walker@sec

[mob_walker@sec]
path_walk = lv_snork_walk_01
path_look = lv_snork_look_01
braindead = true
END

 

Т.е., по сути, он должен двигаться walker'ом, по сигналу в последней точке переходить в jump'ера, прыгать, а затем продолжать двигаться следующим walker'ом. Но он вообще не прыгает, то есть, тупо прётся на точку обычным walker'ом. Пробовал и с разных позиций заставлять его прыгать (изначальная идея - прыжок с крыши дома прямо перед мордой эктора; сейчас он даже на ровной земле не прыгает), и jump_factor разный ставить - ничего вообще не происходит. Разве что, при экспериментах со спавном он может появляться в рандомных местах возле эктора. Буду благодарен за советы. 

Share this post


Link to post
Share on other sites

@Змея, спасибо. Попытался по твоему совету взять snork_normal (именно они, судя по логике, скакали на ЧАЭС-2) и покрутить offset Y. Началось вообще невообразимое - снорк стал аки воздушный шар летать по всей карте, проваливаться под текстуры, спавниться где угодно и прочее. Причём, если делать jump_factor и offset в пределах нормы для прыжка с дома (3 и 4 соответственно, имхо), то схема опять не работает. Даже не знаю, что и делать. Не знаешь, часом, какой offset Y можно поставить для прыжка с Y 14 на Y 9? Спасибо.

Edited by Дмитрий Зверев (Книги, Вселенная и вообще)

Share this post


Link to post
Share on other sites

Всем привет. Есть ли возможность привязать секцию [spawner] к логике физического объекта? Или это априори не поддерживается движком и работает только монстров/сталкеров?

Share this post


Link to post
Share on other sites
Только что, lordmuzer сказал:

Это что такое в вашем понимании?

Привязать например к артефакту или аптечке можно - просто регистрируем скриптовый класс новый (если еще нету) для нужного класса предметов и делаем примерно тоже, как spawner обрабатывается в se_stalker

В моём понимании это все объекты с секцией physic_object и соответствующей логикой ("ph") в all.spawn. Мои извинения, если я сразу неправильно выразился -- что-то совсем забыл про аптечки и артефакты. Мне нужно к стационарному радио привязать, чтобы имитировать сцену, в которой непись будет его "чинить", стоя спиной к игроку, а затем подходить к столу и "ставить" его (т.е. он тупо заспавнится при соответствующем условии). Вот и пытаюсь придумать, как подобное реализовать -- через [spawner] разобраться или попытаться задать логику объекту, спавнящемуся скриптом. За совет спасибо, попробую.

Share this post


Link to post
Share on other sites

Всем привет. При разборе логики у меня неоднократно возникал вопрос. Можно ли логически заставить сталкера стрелять по другому сталкеру? 
В схеме я перевожу его на remark и отыгрываю анимацию ***_fire. Всё работает отлично, пока в качестве цели (по story_id) указан мутант, бандит или зомбированный (короче, недружественное существо). Однако, если приказать одному сталкеру стрелять по другому нейтральному сталкеру, то он просто наведёт на него ствол и замрёт. Я не очень силён в xr_***-скриптах, поэтому буду очень благодарен тому, кто подскажет, как реализовать это без костылей и красиво (под костылями я имею в виду проигрывание звука выстрела и одновременно вызов хита по цели. Выглядит это максимально картонно, а посему хочу насильно "приказать" одному сталкеру стрелять по другому, невзирая на группировку). 

Пока писал назрел ещё один вопрос. В оригинальной ТЧ есть момент, когда ГГ подходит к Кузнецову, и у того (несмотря на то, что он во вражьей группировке) появляется диалог. Однако мне в попытках исправить по аналогии секцию meet создать что-то подобное не получилось. Пытался даже играться с game_relations.ltx (выставлять отношения к группировке killer на 0), но диалоги не появлялись. Подозреваю, что где-то прописаны группировки (в dialog_manager.ltx?), в котором явно задано, с кем эктор может говорить, а с кем - нет. Но вот что-то совсем не получилось разобраться, как конкретно этот dialog_manager работает. Опять же, буду благодарен за любые подсказки по данному вопросу. Спасибо.

 

Share this post


Link to post
Share on other sites

@naxac, "поссорил", сменив жертве группировку. И убийце, на всякий, тоже сменил, настроив ему отношение конкретно к жертве в -5000. В итоге, при вызове скрипта из диалога и жертва, и убийца срываются в бой (хотя у обоих стоит danger_ignore по всем пунктам = 1 и combat_ignore_cond = always). Поэтому сцена, в которой убийца должен красиво решать стоящего на коленях сталкера попросту сыплется. Даже не знаю, как теперь это можно пофиксить. В любом случае, спасибо.

Share this post


Link to post
Share on other sites

Всем привет. Есть функция, которая при нажатии на кнопку на gui начинает выполнять много других весёлых функций (с вероятностью 0,8 телепортировать актора в нужное место, после чего высчитывать вероятность, за сколько он до этого места "добрался"; с вероятностью 0,2 забрасывать его по другим координатам, где его ждут бандиты. Вдовесок - затемнение экрана, перемотка времени, сообщения о том, что актор добрался за N часов и т.п.

 

Практически всё работает хорошо, но, как говорится, есть нюанс: 
1) Иногда актора просто телепортирует в локацию (куда выставлена вероятность 0,8) без сообщения и без перемотки времени; 
2) Иногда эктора телепортирует в нужную локацию, но приходят два сообщения (например, "вы добрались за 2 часа" и "вы добрались за 3 часа") и время отматывается ажно на 5 часов вперёдт.

Вопрос: как это можно пофиксить? Я не ахти какой скриптер, так что, пожалуйста, подскажите, может, я что-то не дописал или ошибся в расчётах вероятности. Заранее спасибо!

 

Скрытый текст

function ui_map:button3_button_clicked()
if math.random(1,100) < 80 then
xr_effects.teleport_actor(nil, nil, {"way_to_f","look_to_f"})
level.add_pp_effector("black.ppe", 150, false)
if math.random(1,10) <= 3 then
news_manager.send_tip(db.actor, "arrived_to_farm_1_hour", 0, "default", 5000)
xr_effects.forward_game_time(nil, nil, {1}) 
end
if math.random(1,10) < 6 then
news_manager.send_tip(db.actor, "arrived_to_farm_2_hour", 0, "default", 5000)
xr_effects.forward_game_time(nil, nil, {2}) 
end
if math.random(1,10) >= 6 then
news_manager.send_tip(db.actor, "arrived_to_farm_3_hour", 0, "default", 5000)
xr_effects.forward_game_time(nil, nil, {3}) 
end
else
xr_effects.teleport_actor(nil, nil, {"random_event_vodokachka_way","random_event_vodokachka_look"})
news_manager.send_tip(db.actor, "arrived_to_vodokachka", 0, "default", 5000)
level.add_pp_effector("black.ppe", 150, false)
xr_effects.forward_game_time(nil, nil, {4})
end
self:HideDialog()
end

 

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...