-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Добро пожаловать на Wiki! Здесь будет описана информация о расширении и то, как работает логика сталкера. Создаёться всё с целью помочь начинающим мододелам и объяснить вещи, которые могут быть не ясны.
Логика сталкера, благодаря которой создаются квесты, кат-сцены и прочие вещи в игре, является достаточно простым и эффективным инструментом. Однако, как и у любой инструмент, он может быть эффективным, но только при условии, что ты знаешь его возможности и ограничения. Данная статья была написана именно с такой целью, объяснить что это вообще такое и как этим пользоваться.
Начнем с самого важного - со структуры файла. Файлы могут различаться между собой, в зависимости от назначения, но у них всех есть общие свойства.
Для начала, любая информация храниться в "секциях". Это своего рода объекты с набором параметров, которые обычно предопределённы либо движком игры, если это какой-то конфиг, либо скриптами, если это файл, отвечающий за игровую логику.
Рассмотрим для примера секцию stalker_sim_squad_novice
из файла конфигурации squad_desct.ltx
:
[stalker_sim_squad_novice]:online_offline_group
faction = stalker
npc_random = sim_default_stalker_0, sim_default_stalker_1, sim_default_stalker_2
npc_in_squad = 2, 3
В данном случае мы можем подметить следующее:
- Объявление секции
stalker_sim_squad_novice
. Работает как обычная переменная со схожими свойствами:- Название не может повторяться в области видимости.
- Может обладать разными областями видимости, в зависимости от контекста.
- Можно ссылаться, если необходимо сменить секцию или просто вынести информацию в отдельную секцию (например секция meet).
- Наследование
online_offline_group
. Как и любое другое наследование, перенимает в себе информацию родителя, которую можно перезаписать при желании. В данном случае идет наследование из файлаm_online_offline_group.ltx
:
[online_offline_group]
GroupControlSection = spawn_group
class = ON_OFF_S
;$spawn = "scripts\online_offline_group"
- Объявление параметров
faction
,npc_random
иnpc_in_squad
Как мы уже рассмотрели выше, у любой секции могут быть параметры. Однако до этого это были лишь статичные, простые параметры файла конфига. Предлагаю теперь разобрать слегка более структурно сложный параметр из файла игровой логики:
on_info = {-dont_have_info} %+add_info =play_sound(sound_name)% sr_idle@end
Структура может по началу сбить с толку, но она достаточно закономерна и проста. Для начала разобьем её на части:
- Название параметра
on_info
- Разделитель
=
- Так называемый "Condlist", о котором будет рассказано позже,
{-dont_have_info} %+add_info =play_sound(sound_name)% sr_idle@end
Здесь будет информация о работе расширения или его особенностях.
Первое, что необходимо сделать - вызвать команду Add Documentation
через нажатие сочетания клавиш Ctrl+Shift+P
и выбрав в списке нужный пункт:
Далее выбираем файл с нужной нам функцией, для которой хотим написать документацию (при вызове автодополнение сбоку пишется, из какого файла взята функция):
Далее выбираем саму функцию, список генерируется таким же образом, как бы обычно работало автодополнение. То есть, при наличии пользовательских функций, они появятся в списке:
Если расширение нашло у пользователя документацию этой функции, то оно уточнит, стоит ли перезаписывать информацию (работает только с пользовательской документацией, информацию самого расширения оно игнорирует):
После всего, появиться поле ввода текста. У расширения есть поддержка Markdown
так что можно оформить описание так, как захочется.
В конце окно закроется, появится уведомление об успешном добавлении документации и расширение начнет отображать то, что было введено ранее:
Вся документация будет храниться в настройках Workspace открытого проекта. Если есть желание помочь в заполнении оригинальной документации, то прошу обратиться ко мне, AziatkaVictor
, и передать это любым удобным образом.
Предложения и дополнения всегда приветствуются!
База знаний:
Информация о расширении: