Сборка alpha поставляет 373 скомпилированных скрипта в Scripts.vfs,
покрывая всё — от взаимодействий с конкретными предметами до логики
мира верхнего уровня. Этот документ группирует их по конвенции
именования, чтобы можно было найти нужный файл при исследовании
поведения.
Все записи — <name>.bin; байтовая раскладка .bin находится в
bin_format.md. Исходники (где есть) лежат в
SRC/PlagueCity/Game/script_sources/.
| Префикс / категория | Кол-во |
|---|---|
NPC_* |
29 |
citizen_* |
30 |
item_* |
47 |
ui_* |
47 |
actor_* |
5 |
arena_* |
3 |
world_* |
2 |
bonfire* |
2 |
Кинематика (cs_*) |
1 |
Двери (door_*) |
1 |
Прочая окружающая среда (agony1, barricade, sound_fake3d, weather, music, blood, bull, …) |
~ 200 |
Категория «прочая окружающая среда» — большинство: каждая запись — поведение одного конкретного актора в игровом мире.
| Файл | Роль |
|---|---|
world_danko.bin |
Логика верхнего уровня кампании Бакалавра (Данко). |
world_min.bin |
Минимальный каркас мира — для тестовых сцен / отладочного старта. |
weather.bin |
Управляет конечным автоматом погоды. |
music.bin |
Управляет переходами между музыкальными регионами. |
Загружаются из formats/world_xml.md:
<Script>world_danko.bin</Script>
<Weather><Script>weather.bin</Script></Weather>
<Music><Script>music.bin</Script></Music>5 базовых классов, от которых другие скрипты наследуются в
исходниках .sc. Источники: script_sources/actor_*.sc{i,}.
| Файл | Исходник .sc(i) |
Роль |
|---|---|---|
actor_item.bin |
actor_item.sc + actor_item_base.sci |
Подбираемый предмет инвентаря. |
actor_item_disp.bin |
actor_item_disp.sc |
Предмет инвентаря с кастомной диспетчеризацией. |
actor_item_dummy.bin |
actor_item_dummy.sc |
Декоративный предмет (не подбираемый). |
actor_item_steal.bin |
actor_item_steal.sc |
Воруемый предмет (поднимает флаг преступления при взятии). |
actor_disp.bin |
actor_disp.sc |
Общий диспетчер (роутер событий). |
Один скрипт на тип предмета, у которого есть особое поведение при использовании: медицинские предметы, оружие, еда, квестовые предметы. Примеры:
| Файл | Поведение |
|---|---|
item_alpha_pills.bin |
Альфа-таблетки (медицина — частичное лечение) |
item_beta_pills.bin |
Бета-таблетки (продвинутое лечение) |
item_white_vaccine.bin, item_black_vaccine.bin, item_blue_vaccine.bin |
Вакцины — иммунизация от Песочной язвы |
item_bandage.bin |
Бинт (остановка кровотечения) |
item_burah_serum.bin |
Сыворотка Бакалавра (критическая для квеста) |
item_bottle_water.bin |
Бутылка с водой (жажда) |
item_bread.bin |
Хлеб (голод) |
item_boot_army.bin, item_boot_repel.bin |
Обувь (бонусы к характеристикам) |
item_balahon.bin |
Балахон (надеваемый плащ — бонус к защите от элементов) |
item_detector.bin |
Детектор чумы |
item_etorfin.bin, item_fenol.bin, item_feromicin.bin |
Препараты / яды |
| … | (ещё 37 — полный список под Scripts/item_*.bin) |
Предметы без скрипта используют дефолтный actor_item.bin из §3.
Два параллельных набора:
Логика разговоров для каждого NPC в кампании Бакалавра. Конвенция
именования: NPC_<character>_<other>.bin для персонажа <character>,
когда он разговаривает с <other>.
Примеры:
NPC_Danko_Aglaja.bin — Bachelor talks to Aglaja
NPC_Danko_Andrei.bin — Bachelor talks to Andrei
NPC_Danko_Burah.bin — Bachelor talks to himself
NPC_Burah_Danko.bin — (legacy from cross-campaign test)
(всего 29 файлов именованных NPC, в основном по одному на квестового NPC).
NPC-скрипты, не привязанные к конкретному персонажу — обычные горожане, населяющие город.
| Шаблон | Значение |
|---|---|
citizen_<name>.bin |
Живой вариант |
citizen_<name>_d.bin |
«Мёртвый» / умирающий вариант (другое дерево диспетчеризации) |
Примеры: citizen_boy, citizen_girl, citizen_butcher,
citizen_dohodyaga, citizen_alkash (пьяница), citizen_dog,
citizen_littleboy.
Один скрипт на UI-форму в UI.vfs/*.xml
(formats/ui_xml.md). Примеры:
| Файл | Привязанная UI-форма |
|---|---|
ui_dialog.bin |
Экран диалога с NPC |
ui_diary.bin |
Дневник игрока |
ui_inventory.bin |
Инвентарь |
ui_worldmap.bin |
Карта мира |
ui_playerstat.bin |
HUD статов игрока |
ui_mail.bin |
Письмо / сообщение в игре |
ui_cursor.bin |
Смена курсора при наведении |
ui_button.bin |
Переиспользуемый виджет кнопки |
ui_container_slot.bin |
Один слот в UI контейнера |
ui_corpse.bin, ui_corpse_slot.bin, ui_corpse_tool.bin |
Обыск мертвого тела |
ui_dialog_history.bin |
Просмотр истории разговора |
ui_dialog_photo.bin |
Фото NPC в диалоге |
ui_agony.bin |
Оверлей «Игрок умирает» |
ui_game_pers_choose.bin |
Выбор персонажа в новой игре |
ui_game_button_highlight.bin |
Подсветка наведения на кнопках игрового меню |
| … | (ещё 37) |
| Файл / семейство | Роль |
|---|---|
door_locked.bin |
Запертая дверь — требует отмычку или ключ |
bonfire.bin, bonfire_geom.bin |
Горящий костёр (свет + тепло + эмиттер частиц) |
barricade.bin |
Актор деревянной баррикады (HP, разрушаемая) |
arena_fighter.bin, arena_manager.bin, arena_spectator.bin |
Мини-игра арены боя быков |
bull.bin |
Поведение быка для арены |
agony1.bin |
Поведение умирающего NPC (медленная анимация смерти + последние слова) |
bomber.bin |
Самоубийца со взрывчаткой |
big_gun.bin |
Стационарное тяжёлое оружие |
bed.bin |
Актор кровати (спать до…) |
barrel_water.bin |
Бочка с водой (пить, чтобы утолить жажду) |
blood.bin |
Эффект частиц крови |
container*.bin |
Семейство UI / поведения контейнеров |
cs_play_all.bin |
Выбор кинематических вставок / отладочный инструмент — проигрывает каждую CS по очереди |
sound_fake3d.bin |
Привязан к размещению ACTOR_SOUND_FAKE3D |
В каждом XML сцены (Actors.vfs/*.xml, см.
formats/actor_xml.md) объявлено
<Script>name.bin</Script>, если у актора есть скрипт. Два способа
поиска:
grep -r "Script>foo.bin" alpha/data/Actors/(после извлечения).- Просмотреть
Actors.vfsчерезpkutil l Actors.vfsи заглянуть в интересующие.xml-файлы.
Все 373 скрипта из этого каталога проходят байт-идентичный round-trip
pathologic_re/parser/batch_test_2005.py
(.bin → .asm → .c → .asm → .bin). 972 HD-скрипта также проходят
100 %; 483 Void-скрипта проходят 100 % через
disasm/void_re/. См. editions_diff.md.
- Формат байт-кода: bin_format.md.
- VM / опкоды: vm.md, opcodes.md.
- Модель задач / событий: tasks.md, events_2005.md.
- Каталог host-вызовов: script_api.md.
- Исходные файлы
.sc:SRC/PlagueCity/Game/script_sources/.