Перейти к содержанию
Toplol4ik

Разная готовая логика

Рекомендуемые сообщения

 

Я решил поделиться с вами небольшой шпаргалкой для мододелов.

Здесь будет разная готовая логика с разбором.

 

Спойлер

[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

 

Тема будет дополняться

Изменено пользователем Toplol4ik
  • Лайк 10
  • Печаль 1
  • Хабар 4

Просто создаю свой мод...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 06.12.2023 в 23:39, Toplol4ik сказал:

Я решил поделиться с вами небольшой шпаргалкой для мододелов.

Здесь будет разная готовая логика с разбором.

А зачем это? Все это в гораздо полном объеме имеется в папке "help" СДК от самих разрабов.

Спойлер

7.png

Вы в нее когда нибудь заглядывали?
 


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

WolfHeart а где такую папку искать? У меня в СДК нет такой

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Toplol4ik Полезная вещь. Логика радио пригодится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, Mawrak сказал:

а где такую папку искать? У меня в СДК нет такой

help.7z

  • Хабар 1

EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу