Toplol4ik 41 Опубликовано 6 декабря, 2023 (изменено) Я решил поделиться с вами небольшой шпаргалкой для мододелов. Здесь будет разная готовая логика с разбором. Спойлер [logic@название_нпс] active = animpoint@название_нпс suitable = {=check_npc_name(название_нпс)}true prior = 90 level_spot = левел_спот [animpoint@название_нпс] use_camp = false\true meet = no_meet\meet@любое_название combat_ignore_cond = false\true combat_ignore_keep_when_attacked = false\true invulnerable = false\true gather_items_enabled = false\true help_wounded_enabled = false\true corpse_detection_enabled = false\true cover_name = смарт_ковер НПСа trade_enable = false\true [meet@любое_название] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false snd_on_use = {!dist_to_actor_le(3)} nil meet_on_talking = false Спойлер [logic@название_нпс] active = animpoint@название_нпс suitable = {=check_npc_name(название_нпс)}true prior = 90 level_spot = левел_спот - метка нпс на карте [animpoint@название_нпс] use_camp = false\true - будет ли нпс реагировать на camp зону meet = no_meet\meet@любое_название - no_meet нельзя поговорить; можно поговорить combat_ignore_cond = false\true - будет ли нпс реагировать на атаку combat_ignore_keep_when_attacked = false\true - будет ли нпс реагировать на то когда он будет атакован invulnerable = false\true - будет ли нпс бессмертный gather_items_enabled = false\true - будет ли нпс подбирать предметы help_wounded_enabled = false\true - будет ли нпс помогать раненым corpse_detection_enabled = false\true - будет ли нпс лутать трупы cover_name = смарт_ковер НПСа trade_enable = false\true - будет ли нпс торговать [meet@любое_название] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false snd_on_use = {!dist_to_actor_le(3)} nil meet_on_talking = false Спойлер [logic@название_нпс] active = walker@название_нпс suitable = {=check_npc_name(название_нпс)}true prior = 91 level_spot = левел_спот [walker@название_нпс] path_walk = нпс_walk path_look = нпс_look meet = meet@любое_название combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false [meet@любое_название ] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false snd_on_use = {!dist_to_actor_le(3)} nil Спойлер Тут разбор схемы walker. Полный разбор в схеме анимпоинта [logic@название_нпс] active = walker@название_нпс suitable = {=check_npc_name(название_нпс)}true prior = 91 level_spot = левел_спот [walker@название_нпс] path_walk = нпс_walk - где нпс стоит. Ставить только последние слова, которые начинаются с название нпс. Полное название не нужно path_look = нпс_look - куда нпс смотрит. Ставить только последние слова, которые начинаются с название нпс. Полное название не нужно meet = meet@любое_название combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false [meet@любое_название ] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false snd_on_use = {!dist_to_actor_le(3)} nil Спойлер [logic] active = sr_idle [sr_idle] on_info = {=actor_in_zone(space_rescrictor)} sr_cutscene %=run_postprocess(fade_in:1234) =disable_ui% [sr_cutscene] point = где будет стоять гг после катсцены look = куда будет смотреть гг после катсцены cam_effector = scenario_cam\локация\название_камеры global_cameffect = true\false on_signal = cameff_end | sr_idle@end_cam %=stop_postprocess(1234) =enable_ui% [sr_idle@end_cam] Спойлер [logic] active = sr_idle - активная логика [sr_idle] on_info = {=actor_in_zone(space_rescrictor)} sr_cutscene %=run_postprocess(fade_in:1234) =disable_ui% {=actor_in_zone(space_rescrictor)} - проверка находится ли гг в спейс рестрикторе sr_cutscene - переключение на секцию sr_cutscene =run_postprocess(fade_in:1234) - включение чёрного экрана =disable_ui - отключение ui [sr_cutscene] point = где будет стоять гг после катсцены look = куда будет смотреть гг после катсцены cam_effector = scenario_cam\локация\название_камеры global_cameffect = true\false - не знаю за что отвечает, я обычно ставлю true on_signal = cameff_end | sr_idle@end_cam %=stop_postprocess(1234) =enable_ui% on_signal = cameff_end - выполнить действие когда катсцена закончилась sr_idle@end_cam - переключение на секцию sr_idle@end_cam =enable_ui - включить ui [sr_idle@end_cam] Спойлер [logic] active = ph_idle@play - активная секция [ph_idle@play] on_info = %=play_sound(звук из scripts_sound)% ph_idle@time [ph_idle@off] on_use = ph_idle@play tips = radio_on [ph_idle@time] on_game_timer = 15 | ph_idle@play on_use = ph_idle@off %=stop_sound% tips = radio_off Спойлер [logic] active = ph_idle@play - а [ph_idle@play] on_info = %=play_sound(звук из scripts_sound)% ph_idle@time - включение звука и переключение на секцию [ph_idle@off] on_use = ph_idle@play - переключение на секцию при нажатии клавиши действия tips = radio_on - подпись внизу экрана (нужно прописать в text\rus\любойфайл) [ph_idle@time] on_game_timer = 15 | ph_idle@play - включение нового саундтрека через 1.5 секунды после окончания предыдущего on_use = ph_idle@off %=stop_sound% - переключение на секцию при нажатии клавиши действия, остановка звука tips = radio_off - подпись внизу экрана (нужно прописать в text\rus\любойфайл) Спойлер [radio] type = 3d npc_prefix = false path = radio\radio_music_ - путь к саундтрекам shuffle = rnd idle = 1,10,100 Спойлер [anomal_zone] layers_count = 2 respawn_tries = 2 max_artefacts = 2 artefacts = af_medusa, af_cristall_flower, af_night_star, af_vyvert (любые арты) start_artefact = af_medusa coeff = 3, 3, 2, 1 artefact_ways = вэй_поинты по которым будут двигаться артефакты field_name = название радиоктивной\термической и т. д. зоны [mines_core] список аномалий, которые будут всегда [layer_1] mines_section = mines_layer_1 [mines_layer_1]:mines_core список аномалий, которые будут после выброса [layer_2] mines_section = mines_layer_2 [mines_layer_2]:mines_core список аномалий, которые будут после выброса Спойлер [anomal_zone] layers_count = 2 - количество вариаций расположения аномалий respawn_tries = 2 - не знаю зачем max_artefacts = 2 - максимальное кол-во артов в аномалии artefacts = af_medusa, af_cristall_flower, af_night_star, af_vyvert (любые арты) start_artefact = af_medusa - артефакт, который появится сразу со 100% шансом coeff = 3, 3, 2, 1 - шансы впадения артов (по порядку как в artefacts) artefact_ways = вэй_поинты по которым будут двигаться артефакты field_name = название радиоктивной\термической и т. д. зоны [mines_core] список аномалий, которые будут всегда [layer_1] mines_section = mines_layer_1 [mines_layer_1]:mines_core список аномалий, которые будут после выброса [layer_2] mines_section = mines_layer_2 [mines_layer_2]:mines_core список аномалий, которые будут после выброса Спойлер [anomal_zone] layers_count = 2 respawn_tries = 2 max_artefacts = 2 artefacts = af_medusa, af_cristall_flower, af_night_star, af_vyvert start_artefact = af_medusa coeff = 3, 3, 2, 1 artefact_ways = test_anomal_zone_af_way_1, test_anomal_zone_af_way_2 field_name = escape_zone_field_radioactive_average [mines_core] escape_zone_mine_gravitational_average_0002 escape_zone_mine_gravitational_average_0003 escape_zone_mine_gravitational_average_0004 escape_zone_mine_gravitational_average_0005 escape_zone_mine_gravitational_average_0006 escape_zone_mine_gravitational_average_0007 [layer_1] mines_section = mines_layer_1 [mines_layer_1]:mines_core escape_zone_mine_gravitational_average_0014 escape_zone_mine_gravitational_average_0015 escape_zone_mine_gravitational_average_0016 escape_zone_mine_gravitational_average_0017 escape_zone_mine_gravitational_average_0018 escape_zone_mine_gravitational_average_0019 [layer_2] mines_section = mines_layer_2 [mines_layer_2]:mines_core escape_zone_mine_gravitational_average escape_zone_mine_gravitational_average_0000 escape_zone_mine_gravitational_average_0001 escape_zone_mine_gravitational_average_0008 escape_zone_mine_gravitational_average_0009 escape_zone_mine_gravitational_average_0010 escape_zone_mine_gravitational_average_0011 escape_zone_mine_gravitational_average_0012 escape_zone_mine_gravitational_average_0013 Спойлер [logic] active = sr_idle@off [sr_idle@off] on_info = {=is_day} sr_idle@on %=turn_off(story_id освещения)% [sr_idle@on] on_info = {!is_day} sr_idle@off %=turn_on(story_id освещения)% Спойлер [logic] active = sr_idle@off - активная секция [sr_idle@off] on_info = {=is_day} sr_idle@on %=turn_off(story_id освещения)% {=is_day} - проверка на день sr_idle@on - переключение на секцию sr_idle@on %=turn_off(story_id освещения)% - отключение освещения по story_id [sr_idle@on] on_info = {!is_day} sr_idle@off %=turn_on(story_id освещения)% {!is_day} - проверка на отсутствие дня sr_idle@off - переключение на секцию sr_idle@off %=turn_off(story_id освещения)% - включение освещения по story_id Спойлер [smart_terrain] squad_id = id сквада max_population = рекомендую поставить побольше, хотябы 5 respawn_params = respawn@имя_смарта [respawn@имя_смарта] spawn_monsters@любое [spawn_monsters@любое] spawn_squads = сквад spawn_num = 1 Спойлер [smart_terrain] squad_id = id сквада max_population = рекомендую поставить побольше, хотябы 5 respawn_params = respawn@имя_смарта [respawn@имя_смарта] spawn_monsters@любое - здесь можно указать несколько сквадов [spawn_monsters@любое] spawn_squads = сквад - имя сквада из squad_descr spawn_num = 1 - сколько сквадов может заспавниться за раз Спойлер [smart_terrain] squad_id = 3 max_population = 5 respawn_params = respawn@test_respawn_squad [respawn@test_respawn_squad] spawn_monsters@flesh spawn_monsters@boar [spawn_monsters@flesh] spawn_squads = simulation_flesh spawn_num = 2 [spawn_monsters@boar] spawn_squads = simulation_boar spawn_num = 1 Тема будет дополняться Изменено 8 декабря, 2023 пользователем Toplol4ik 10 1 2 4 Просто создаю свой мод... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 908 Опубликовано 7 декабря, 2023 В 06.12.2023 в 23:39, Toplol4ik сказал: Я решил поделиться с вами небольшой шпаргалкой для мододелов. Здесь будет разная готовая логика с разбором. А зачем это? Все это в гораздо полном объеме имеется в папке "help" СДК от самих разрабов. Спойлер Вы в нее когда нибудь заглядывали? AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 587 Опубликовано 8 декабря, 2023 WolfHeart а где такую папку искать? У меня в СДК нет такой 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 281 Опубликовано 8 декабря, 2023 Toplol4ik Полезная вещь. Логика радио пригодится Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 908 Опубликовано 8 декабря, 2023 12 часов назад, Mawrak сказал: а где такую папку искать? У меня в СДК нет такой help.7z 1 AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ayden 87 Опубликовано 19 сентября Спасибо за логику лампочек, была мысль сделать открытый бар этакий, чтобы днем лампы выключались. Эх, Самара- городок, ветер северный, отожрал я себе пузо, как беременный.:) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты