@mole venomous , спасибо за ответ! Уже находил этот код на другом сайте с тем же readme, но до конца не понял. Раз тут посоветовали, то сел дальше его изучать и заметил, что он использует методы, которые, если я правильно понял, не являются стандартными для чистого SoC без модов.
Например в строке "amk.convert_npc[id] = true". Поиск метода convert_npc по файлам gamedata папок, которые я сейчас использую ("config", "scripts", "sounds", "spawns", "textures") не дал результата. То же самое и с методами "read_stalker_params", "write_stalker_params".
Не нашёл в lua_help.script:
updhealth;
killerid;
game_death_time[number];
skeleton_flags;
Стандартные:
heart:parent() - насколько я понял, возвращает родителя для объекта (артефакта). Если он лежит в трупе, то это мёртвый NPC. class game_object {}.
function id() - class game_object {} по lua_help.script, возвращает id объекта.
level.main_input_receiver() - возвращает текущее активное окно.
alife() - класс alife_simulator - получаем сам объект класса alife_simulator.
function set_switch_online(number, boolean) - class alife_simulator {} - видимо установить статус онлайн объекта с идентификатором id при boolean = true (перевести объект в онлайн).
set_switch_offline(id, boolean) - class alife_simulator {} - установить статус оффлайн объекта с идентификатором id при boolean = true (перевести объект в оффлайн).
level.object_by_id(number) - клиентский объект по его id. Возвращает nil, если объект не в онлайне или не существует. Пространство имён level.
function object() - class entity_action {} - ???
property health - class game_object {} - параметр "здоровье" объекта?..
function log(string) - ?.. (логирование куда-то?)
@AndreySol понял. all.spawn уже распакованным болтается, но через него манипуляций пока не пробовал проводить, только изучал структуру.
Получается, мне нужен файл, полученный из all.spawn, с префиксом "alife_", далее номер уровня и имя нужной локации с NPC ("alife_l05_bar.ltx"). В нём я уже находил секцию Петренко. Вот её код.
И в таком случае номером секции будет являться число в квадратных скобках "[]" = 7212? Думал, что это служебный ID, который присваивает перепаковщик, чтобы корректно запаковывать потом all.spawm обратно и сама игра про него не знает. Файл "alife_l05_bar.ltx" нужно куда-то подсовывать игре, или в директории игры вообще может не быть распакованного "all.spawn", и игра уже знает про номер секции, хоть этот ID и не имеет отношения к ID объекта?
И, получается, раз есть функция для спавна по номеру секции, если про него знает игра, то возможно есть функция спавна по имени объекта (name = bar_dolg_petrenko)?
Как только попробую оба способа, отпишусь.