Разбор скрипта xr effects

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск
Разбор скрипта xr_effects
Описание
Автор!SkIF!
Тип статьисправка
АктуальностьЗП

xr_effects.script - это скрипт, содержащий функции-шаблоны, которые можно вызывать из логики любого объекта. Удобство в том, что не нужно писать уйму функций для каждого события.

Возможности функций xr_effects.script
Название Использование Вызов логикой Скриптовый вызов
disable_ui Убирает с экрана интерфейс (худ, миникарту, убирает оружие, иконки квикслотов, блокирует клавиатуру, выключает ПНВ и фонарь)
  • %=disable_ui%
  • %=disable_ui(true)% — если необходимо оставить активным слот с оружием
  • xr_effects.disable_ui()
  • xr_effects.disable_ui(nil, nil, {"true"})
disable_ui_only Выполняет те же функции, что и disable_ui, кроме выключения фонаря и ПНВ. Также подерживает возможность оставить активный слот
  • %=disable_ui_only%
  • xr_effects.disable_ui_only()
enable_ui Восстанавливает все, что убирает disable_ui. Если указать true, то восстановится последний активный слот.
  • %=enable_ui%
  • %=enable_ui(true)%
  • xr_effects.enable_ui()
  • xr_effects.enable_ui(nil, nil, {"true"})
run_postprocess Запускает постпроцесс (построцессы для запуска необходимо регистрировать в postprocess.ltx в папке misc) %=run_postprocess(<имя постпроцесса>:<номер постпроцесса>)% — номер это любое целое число, которое не должно повторятся xr_effects.run_postprocess(nil, nil, {"<имя постпроцесса>","<номер постпроцесса>"}) — номер это любое целое число, которое не должно повторятся
stop_postprocess Останавливает постпроцесс по его номеру %=stop_postprocess(<номер постпроцесса>)% xr_effects.stop_postprocess(nil, nil, {"<номер постпроцесса>"})
run_tutorial Запускает туториал %=run_tutorial(<имя туториала>)% xr_effects.run_tutorial(nil, nil, {"<имя туториала>"})
stop_tutorial Останавливает запущеный туториал %=stop_tutorial% xr_effects.stop_tutorial()
teleport_actor Телепортирует игрока на указаный waypoint, есть возможность указать направление взгляда игрока
  • %=teleport_actor(<waypoint, на который телепортировать игрока>:<waypoint, на который будет смотреть игрок>)%
  • %=teleport_actor(<waypoint, на который телепортировать игрока>)% — если не нужно устанавливать направление взгляда
  • xr_effects.teleport_actor(nil, nil, {"<waypoint, на который телепортировать игрока>","<waypoint, на который будет смотреть игрок>"})
  • xr_effects.teleport_actor(nil, nil, {"<waypoint, на который телепортировать игрока>"})
teleport_npc Телепортирует NPC на указаный waypoint. Вызывается из логики NPC %=teleport_npc(<waypoint, на который телепортировать NPC>)% -
teleport_npc_by_story_id Телепортирует NPC на указаный waypoint по story_id NPC. Можно применять только к NPC у которых есть story_id %=teleport_npc_by_story_id(<story_id NPC>:<waypoint, на который телепортировать NPC>)% xr_effects.teleport_npc_by_story_id(nil, nil, {"<story_id NPC>","<waypoint, на который телепортировать NPC>"})
teleport_squad Телепортирует squad на указаный waypoint по story_id. Можно применять только к squad'у у которого есть story_id %=teleport_squad(<story_id squad'а>:<waypoint, на который телепортировать squad>)% xr_effects.teleport_squad(nil, nil, {"<story_id squad'а>","<waypoint, на который телепортировать squad>"})
play_particle_on_path Проигрывает партикл на waypoint'е %=play_particle_on_path(<имя партикла>:<waypoint>)% xr_effects.play_particle_on_path(nil, nil, {"<имя партикла>","<waypoint>"})
restore_health Востанавливает здоровье NPC или мутанту. Вызывается из логики NPC или мутанта. %=restore_health% -
kill_npc Убивает NPC. Можно вызвать из логики NPC, либо из логики другого объекта - тогда нужно указать story_id %=kill_npc%, либо %=kill_npc(<story_id NPC>)% xr_effects.kill_npc(nil, nil, {"<story_id NPC>"})
remove_npc Удаляет NPC по story_id

Внимание!!! Ни в коем случае не вызывать из логики NPC!!!

%=remove_npc(<story_id NPC>)% xr_effects.remove_npc(nil, nil, {"<story_id NPC>"})
inc_counter Прибавляет к указанному счетчику число. Если число не указать - прибавится единица.
  • %=inc_counter(<имя счетчика - может быть любое>:<число>)%
  • %=inc_counter(<имя счетчика - может быть любое>)%
  • xr_effects.inc_counter(nil, nil, {"<имя счетчика - может быть любое>", "число>"})
  • xr_effects.inc_counter(nil, nil, {"<имя счетчика - может быть любое>"})
dec_counter Отнимает от указанного счетчика число. Если число не указать - отнимится единица.
  • %=dec_counter(<имя счетчика>:<число>)%
  • %=dec_counter(<имя счетчика>)%
  • xr_effects.dec_counter(nil, nil, {"<имя счетчика>", "число>"})
  • xr_effects.dec_counter(nil, nil, {"<имя счетчика>"})
set_counter Устанавливает в указанном счетчике число. Если число не указать - установится единица.
  • %=set_counter(<имя счетчика>:<число>)%
  • %=set_counter(<имя счетчика>)%
  • xr_effects.set_counter(nil, nil, {"<имя счетчика>", "число>"})
  • xr_effects.set_counter(nil, nil, {"<имя счетчика>"})
turn_off Выключает динамическую лампочку (hanging_lamp) по story_id

При вызове через логику все лампы перечисляются через двоеточие.

  • %=turn_off(<лампа1>:<лампа2>:<лампа3>)%
  • %=turn_off(<лампа>)%
xr_effects.turn_off(nil, nil, {"<лампа>"})
turn_on Включает динамическую лампочку (hanging_lamp) по story_id

При вызове через логику все лампы перечисляются через двоеточие.

  • %=turn_off(<лампа1>:<лампа2>:<лампа3>)%
  • %=turn_off(<лампа>)%
xr_effects.turn_on(nil, nil, {"<лампа>"})
set_weather Устанавливает определенную погоду. Если указать true - установка погоды сразу, false - через некоторое время.
  • %=set_weather(<секция погоды>:true)%
  • %=set_weather(<секция погоды>:false)%
  • xr_effects.set_weather(nil, nil, {"<секция погоды>", true})
  • xr_effects.set_weather(nil, nil, {"<секция погоды>", false})
send_tip Отправляет сообщение. Текст сообщения должен быть на английском (описание прописывается в любом *.xml файле в text\rus), иконка должна быть зарегистрирована в news_manager.script, время показа сообщения записывается в милисекундах, то есть 5000 - 5 сек реального времени. %=send_tip(<текст>:<иконка>:<время>)% xr_effects.send_tip(nil, nil, {"<текст>","<иконка>","<время>"})
spawn_object Спавнит объект на waypoint'е. %=spawn_object(<имя секции объекта>:<waypoint>)% xr_effects.spawn_object(nil, nil, {"<имя секции объекта>","<waypoint>"})
spawn_corpse Спавнит труп на waypoint'е. %=spawn_corpse(<имя секции NPC, который заспавнится в виде трупа>:<waypoint>)% xr_effects.spawn_corpse(nil, nil, {"<имя секции NPC, который заспавнится в виде трупа>","<waypoint>"})
spawn_object_in Спавнит в определенный inventory_box предмет. У inventory_box должен быть story_id %=spawn_object_in(<имя секции предмета>:<story_id inventory_box>)% xr_effects.spawn_object_in(nil, nil, {"<имя секции предмета>","<story_id inventory_box>"})
give_actor Спавнит игроку определенный предмет. %=give_actor(<предмет1>:<предмет2>:<предмет3>)%, %=give_actor(<предмет>)% xr_effects.give_actor(nil, nil, {"<предмет>"})
remove_item Удаляет предмет у игрока. %=remove_item(<предмет>)% xr_effects.remove_item(nil, nil, {"<предмет>"})
activate_weapon_slot Делает активным определенный слот. %=activate_weapon_slot(<номер слота>)% xr_effects.activate_weapon_slot(nil, nil, {<номер слота>})
create_squad Спавнит squad на определенный smart_terrain. %=create_squad(<секция squad'а>:<имя smart_terrainа>)% xr_effects.create_squad(nil, nil, {"<секция squad'а>","<имя smart_terrainа>"})
remove_squad Удаляет squad. %=remove_squad(<секция squad'а>)% xr_effects.remove_squad(nil, nil, {"<секция squad'а>"})
kill_squad Убивает squad. %=kill_squad(<секция squad'а>)% xr_effects.kill_squad(nil, nil, {"<секция squad'а>"})
clear_smart_terrain Удаляет со smart_terrainа все squadы. %=clear_smart_terrain(<имя smart_terrainа>)% xr_effects.clear_smart_terrain(nil, nil, {"<имя smart_terrainа>"})
give_task Выдает квест игроку. %=give_task(<имя квеста>)% xr_effects.give_task(nil, nil, {"<имя квеста>"})
set_active_task Устанавливает активным определенный квест. %=set_active_task(<имя квеста>)% xr_effects.set_active_task(nil, nil, {"<имя квеста>"})
actor_friend Делает NPC другом игроку. Вызывается из логики NPC. %=actor_friend% -
actor_neutral Делает NPC нейтральным к игроку. Вызывается из логики NPC. %=actor_neutral% -
actor_enemy Делает NPC врагом игроку. Вызывается из логики NPC. %=actor_enemy% -
set_squad_neutral_to_actor Делает squad нейтральным к игроку. У squad'а должен быть story_id %=set_squad_neutral_to_actor(<story_id squad'а>)% xr_effects.set_squad_neutral_to_actor(nil, nil, {"<story_id squad'а>"})
set_squad_friend_to_actor Делает squad дружественным игроку. У squad'а должен быть story_id %=set_squad_friend_to_actor(<story_id squad'а>)% xr_effects.set_squad_friend_to_actor(nil, nil, {"<story_id squad'а>"})
set_squad_enemy_to_actor Делает squad враждебным игроку. У squad'а должен быть story_id %=set_squad_enemy_to_actor(<story_id squad'а>)% xr_effects.set_squad_enemy_to_actor(nil, nil, {"<story_id squad'а>"})
inc_faction_goodwill_to_actor Улучшает отношение группировки к игроку на n единиц. %=inc_faction_goodwill_to_actor(<группировка>:<n>)% xr_effects.inc_faction_goodwill_to_actor(nil, nil, {"<группировка>",<n>})
dec_faction_goodwill_to_actor Ухудшает отношение группировки к игроку на n единиц. %=dec_faction_goodwill_to_actor(<группировка>:<n>)% xr_effects.dec_faction_goodwill_to_actor(nil, nil, {"<группировка>",<n>})
kill_actor Убивает игрока. %=kill_actor% xr_effects.kill_actor()
give_treasure Выдать игроку координаты тайника.
  • %=give_treasure(<тайник1>:<тайник2>:<тайник3>)%
  • %=give_treasure(<тайник>)%
xr_effects.give_treasure(nil, nil, {"<тайник>"})
disable_anomaly Деактивирует аномалию - то есть её не будет видно и она не будет реагировать на игрока и другие объекты. Аномалия должна иметь story_id %=disable_anomaly(<story_id аномалии>)% xr_effects.disable_anomaly(nil, nil, {"<story_id аномалии>"})
enable_anomaly Делает активной аномалию - то есть убирает эффект disable_anomaly

Аномалия должна иметь story_id

%=enable_anomaly(<story_id аномалии>)% xr_effects.enable_anomaly(nil, nil, {"<story_id аномалии>"})
add_cs_text Выводит на центр экрана текст. Текст должен быть на английском (описание прописывается в любом *.xml файле в text\rus) %=add_cs_text(<текст>)% xr_effects.add_cs_text(nil, nil, {"<текст>"})
del_cs_text Удаляет текст с экрана, установленый с помощью add_cs_text %=del_cs_text% xr_effects.del_cs_text()
scenario_autosave Сохраняет игру. Имя сохранения пишется на английском. %=scenario_autosave(<имя сохранения>)% xr_effects.scenario_autosave(nil, nil, {"<имя сохранения>"})
clear_box Удаляет все предметы из inventory_box

У inventory_box должен быть story_id

%=clear_box(<story_id inventory_box>)% xr_effects.clear_box(nil, nil, {"<story_id inventory_box>"})
set_game_time Устанавливает определенное время в часах и (если нужно) - в минутах.
  • %=set_game_time(<время в часах>:<время в минутах>)%
  • %=set_game_time(<время в часах>)%
  • xr_effects.set_game_time(nil, nil, {<время в часах>,<время в минутах>})
  • xr_effects.set_game_time(nil, nil, {<время в часах>})
forward_game_time Проматывает время вперед на определенное время в часах и (если нужно) - в минутах.
  • %=forward_game_time(<время в часах>:<время в минутах>)%
  • %=forward_game_time(<время в часах>)%
  • xr_effects.forward_game_time(nil, nil, {<время в часах>,<время в минутах>})
  • xr_effects.forward_game_time(nil, nil, {<время в часах>})