Вступ
Багато хто часто стикається з тим, що при спробі додавання монстрів, що не потрапили у фінальну версію, гра може вилітати. Спробую розповісти, як це можна виправити.
Для прикладу візьму кішок (дуже вони мені подобаються)
Додати їх можна відредагувати файл all.spawn або динамічно створити в грі через функцію alife:create() .
Виліт при появі
Зазвичай супроводжується повідомленням у лозі:
Arguments : Can't open section 'cat_weak'
Це означає, що монстр не до кінця описаний. У конфігураційному файлі йде секція
[m_cat_e]:monster_base
Але для створення різних за силою конфігурацій монстрів зазвичай використовується така штука. Створюється секція виду
[cat_weak]:m_cat_e
тобто посилання на основну конфігурацію (іншими словами це називається успадкуванням), а потім вказуються параметри, що відрізняються від неї. Наприклад сила, здоров'я, кут огляду тощо. Ми поки що обмежимося просто додаванням цієї секції. У файлі config\creatures\m_cat.ltx наприкінці допишемо [cat_weak]:m_cat_e .
Запускаємо, додаємо кішку, вилітаємо з помилкою: Arguments : Cant find variable smart_terrain_choose_interval in [cat_weak]
Що ж, додамо цей параметр. Подивимося, який він у собак, і зробимо також:
smart_terrain_choose_interval = 00:15:00
Запускаємо, вилітаємо з помилкою:
Arguments : Чи не find variable satiety_threshold in [cat_weak]
Загалом додаємо параметри, поки кішка не стане нормально з'являтися. Такі помилки легко локалізуються та виправляються.
Ну, про всяк випадок, потрібно додати ще два рядки:
critical_wound_threshold = 0.4 critical_wound_decrease_quant = 0.
Після цього кішка з'являється, бігає, з 30 метрів біжить нас їсти. Ми цього не хочемо, стріляємо у неї, і в нас відбувається