Toplol4ik 35 Опубликовано 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 2 4 Просто создаю свой мод... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 840 Опубликовано 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 383 Опубликовано 8 декабря, 2023 WolfHeart а где такую папку искать? У меня в СДК нет такой 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 70 Опубликовано 8 декабря, 2023 Toplol4ik Полезная вещь. Логика радио пригодится Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 840 Опубликовано 8 декабря, 2023 12 часов назад, Mawrak сказал: а где такую папку искать? У меня в СДК нет такой help.7z 1 AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты