Сповіщення
Очистити все

Нові монстри. Виліт №1


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Вступ

Багато хто часто стикається з тим, що при спробі додавання монстрів, що не потрапили у фінальну версію, гра може вилітати. Спробую розповісти, як це можна виправити.

Для прикладу візьму кішок (дуже вони мені подобаються)

Додати їх можна відредагувати файл 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 метрів біжить нас їсти. Ми цього не хочемо, стріляємо у неї, і в нас відбувається


   
Цитата