Painter 3 548 Опубликовано 14 Июля 2020 @Марка демченков, give_info("info") -- выдать инфопорцию. disable_info("info") -- убрать инфопорцию.give_info("info") -- выдать инфопорцию. disable_info("info") -- убрать инфопорцию. 1 2 Портфолио Поделиться этим сообщением Ссылка на сообщение
Painter 3 548 Опубликовано 20 Октября 2020 Вариант от Shredder Также можно подсмотреть доработанный вариант в исходниках Lex Addon-а (пункт 44 в описании). 1 1 3 Портфолио Поделиться этим сообщением Ссылка на сообщение
Painter 3 548 Опубликовано 12 Сентября 2021 (изменено) @ARTLantist, Примеры: (Показать) Например, через логику рестриктора: [logic] active = sr_idle@spawn [sr_idle@spawn] on_info = {+условие} nil %=create_squad(name_squad:name_terrain)%[logic] active = sr_idle@spawn [sr_idle@spawn] on_info = {+условие} nil %=create_squad(name_squad:name_terrain)% Для постоянного респавна симуляцинных сквадов нужно указать их в конфиге интересующего смарт-террейна по пути configs\scripts\локация\smart: [smart_terrain] squad_id = 3 max_population = 1 respawn_params = respawn@zat_sim_1 [respawn@zat_sim_1] spawn_stalker [spawn_stalker] spawn_squads = name_squad ; название сквада spawn_num = 1 ; количество сквадов[smart_terrain] squad_id = 3 max_population = 1 respawn_params = respawn@zat_sim_1 [respawn@zat_sim_1] spawn_stalker [spawn_stalker] spawn_squads = name_squad ; название сквада spawn_num = 1 ; количество сквадов Если необходимо, чтобы симуляционный сквад появился единоразово при старте новой игры, можно указать его в configs/misc/simulation.ltx: [start_position_локация] name_squad = name_terrain[start_position_локация] name_squad = name_terrain Изменено 12 Сентября 2021 пользователем Painter 2 Портфолио Поделиться этим сообщением Ссылка на сообщение
Painter 3 548 Опубликовано 30 Сентября 2021 (изменено) @ZeeK, есть сомнения, что подойдёт для ЧН, но в ЗП создать подобную "кнопку" можно при помощи туториала. Большой текст: (Показать) Создаём рестриктор: [logic] active = sr_idle@use [sr_idle@use] on_info = {=actor_in_zone(название_зоны) -нужный_инфопоршень} sr_idle@place %=run_tutorial(название_туториала)% on_info2 = {+нужный_инфопоршень} sr_idle@nil [sr_idle@place] on_info = {+нужный_инфопоршень} sr_idle@nil on_info2 = {!actor_in_zone(название_зоны)} sr_idle@use %=stop_tutorial% on_info3 = {!has_active_tutorial} sr_idle@use [sr_idle@nil][logic] active = sr_idle@use [sr_idle@use] on_info = {=actor_in_zone(название_зоны) -нужный_инфопоршень} sr_idle@place %=run_tutorial(название_туториала)% on_info2 = {+нужный_инфопоршень} sr_idle@nil [sr_idle@place] on_info = {+нужный_инфопоршень} sr_idle@nil on_info2 = {!actor_in_zone(название_зоны)} sr_idle@use %=stop_tutorial% on_info3 = {!has_active_tutorial} sr_idle@use [sr_idle@nil] Создаём туториал в configs\ui\game_tutorials.ltx: <название_туториала> <global_wnd/> <item> <disabled_key>quit</disabled_key> <length_sec/> <action id="use" finalize="1">xr_effects.вызываемая_функция</action> <guard_key>use</guard_key> <grab_input>0</grab_input> <main_wnd> <auto_static start_time="0" length_sec="5000" x="512" y="660" width="300" height="60" alignment="c" stretch="1" la_cyclic="1" la_texture="1" la_alpha="1"> <text font="graffiti22" r="225" g="225" b="250" a="255" align="c">текст_кнопки</text> </auto_static> </main_wnd> </item> </название_туториала> <название_туториала> <global_wnd/> <item> <disabled_key>quit</disabled_key> <length_sec/> <action id="use" finalize="1">xr_effects.вызываемая_функция</action> <guard_key>use</guard_key> <grab_input>0</grab_input> <main_wnd> <auto_static start_time="0" length_sec="5000" x="512" y="660" width="300" height="60" alignment="c" stretch="1" la_cyclic="1" la_texture="1" la_alpha="1"> <text font="graffiti22" r="225" g="225" b="250" a="255" align="c">текст_кнопки</text> </auto_static> </main_wnd> </item> </название_туториала> В xr_effects.script добавляем функцию, которую будем вызывать при активации туториала: function вызываемая_функция(actor, npc) if xr_conditions.actor_in_zone(actor, npc, {"название_зоны"}) and not has_alife_info("нужный_инфопоршень") then give_info("нужный_инфопоршень") end endfunction вызываемая_функция(actor, npc) if xr_conditions.actor_in_zone(actor, npc, {"название_зоны"}) and not has_alife_info("нужный_инфопоршень") then give_info("нужный_инфопоршень") end end Готово. Примерно таким образом в ЗП реализован обыск вертолётов, расстановка сканеров и прочее. Изменено 30 Сентября 2021 пользователем Painter 1 Портфолио Поделиться этим сообщением Ссылка на сообщение
Painter 3 548 Опубликовано 30 Сентября 2021 @ZeeK, в этой теме можно найти все необходимые ресурсы. 2 2 Портфолио Поделиться этим сообщением Ссылка на сообщение
Painter 3 548 Опубликовано 21 Июля 2023 @bsanek628 добавить дополнительные советы можно в "loadscreen.script" (в таблице "tips_table"). Текст советов добавляется в "ui_st_loadscreen.xml". 1 Портфолио Поделиться этим сообщением Ссылка на сообщение