N1kX
Модостроитель
- Регистрация
- 13 Ноя 2009
- Сообщения
- 6.176
- Благодарности
- 5.693
- Баллы
- 910
Смысл в этой теме таков. Вы решили побыть тестером мода или просто играете в любимый мод и хотите как-то помочь разработчикам мода в поиске ошибок, но не знаете как? zSpy вам поможет. (Будет также полезно разработчикам, которые не знают, как пользоваться ею)
Разработчики PB создали хорошую утилиту для отладки и поиска возможных ошибок, называется она zSpy, но почему-то мало кто о ней знает, или знают, но не разбирались, как работать с ней.
Скачать её можно отсюда, или взять из этой папки Gothic 2\_work\tools\zSpy
Версия из готики 2 работает под готикой 1.
Устанавливаем (распаковываем из архива) zSpy в \Gothic 2\System\
Запускаем zSpy.exe
Рассмотрим главное окно утилиты
1. Панель меню - содержит File, View, Options и Help
2. Панель кнопок - на которые вынесены основные функции утилиты
3. Рабочая область - на которой собственно и будут выводимые сообщения
1) Заглянем в меню - File
a) Save as... - позволяет сохранить наш журнал в отдельный документ
b) Print, Print Preview и Print Setup - позволяет напечатать наш журнал, сделать предпросмотр и настроить принтер
c) Copy view to clipboard - копирует текст из видимой рабочей области (копирует текст, на который мы смотрим, а он может быть в начале/середине/конце)
d) Copy last 100 clipboard - копирует последние 100 строк текста из рабочей области (копирует текст с конца)
2) Заглянем в View
a) Redraw - не работает
b) Clear Screen - очистить рабочую область
c) Autoscroll - при включении, рабочая область будет автоскролиться с новыми сообщениями ошибок/предупреждений
d) Always on top - при включении, утилита будет поверх всех окон
e) Toolbar - включает/отключает панель с продублированными кнопками
f) Status bar - не работает
3) Заглянем в Options
a) Logging - настройки по выводу различных ошибок
b) Font - настройки по шрифту
Здесь все понятно, выбираете любимый шрифт, размер, стилистику, для русского текста кодировку выбираем Кириллица
c) Colors - настройки по цветовой палитре различных ошибок
d) Find Text - позволяет искать нужный текст в рабочей области.
В открытом окне набираем искомый текст и при нажатии ОК, он будет найден и подсвечен синей линией
e) Find Next - перейти к следующему тексту (активна, при включении Find Text)
f) Remove Find-Result - очищает включенных поиск текста
g) Textfilter - позволяет задать точный вывод ошибок
В открытом окне набираем нужный искомый текст и при запуске игры, будут выводится ошибки только с ними
Примеры, SCRIPT, TEXTURE, SPAWN и прочее.
4) В меню Help будет кнопка About zSpy
При нажатии, можем посмотреть информацию об утилите, её версии и списка изменений.
На этом закончим внешний осмотр утилиты и углубимся в некоторые функции.
При нажатии на кнопку Logging (3.a) мы увидим следующее:
Раздел Categories - включает в себя категории выводимых ошибок
Informations - информация - это не ошибка, а различный текст о выполнении различных функции, которые происходят в игре (в основной части они нам не нужны, поэтому выключаем сразу), изначальный цвет в рабочей области черный
Faults - ошибка, она показывает какое-либо нарушение в функциях (часто при её выводе игра не вылетает, но исправить её обязательно)
Warnings - внимание - такого рода ошибки указывают на незначительные ошибки, игра с ними не вылетает, но исправление рассматривается разработчиком, в этой группе есть внимания, которые не влияют на игру и их можно не исправлять)
Critical Errors - критическая ошибка - эти ошибки всегда аварийно завершают игру и требуют немедленного исправления
Dynamic Show и Dynamic Hide - если включена Show - при включении игры zspy будет развернут и будет перекрывать окна, Hide - ничего этого не делает, если выключены оба, утилита будет вести себя как Hide
Remote UDP-Hosts - выключено (предполагалось, пересылка сообщений удаленно)
Disable UDP-communication - выключено
Log to file - при включении, можно задать файл, в который будет собираться вся выводимая информация (рекомендую включить её и оставить все по умолчанию)
Clear on start of application - при включении рабочая область будет всегда очищаться при запуске игры
Теперь же рассмотрим на деле, как это все работает.
Убедитесь, что вы установили PlayerKit на Готику 1 или Готику 2!
Чтобы сообщения стали пересылаться в zSpy необходимо запускать GothicStarter_Mod.exe, а не GothicStarter.exe
Если у вас установлен Ninja, то нужно запускать через GothicStarter.exe, запуск через GothicStarter_Mod.exe лишнее.
При запуске будет немного измененное окно:
Включаем оконный режим (чтобы видеть вывод сообщений), также перемешаем ползунок Сообщения zSpy с 0 до 4.
Так то вывод сообщений имеет градацию с 0 до 10, разница лишь в том, будет ли подробно сами сообщения выводится и разница заметна с включенным Information, если Information выключен, достаточно 4.
Все, теперь запускам выбранный вами мод.
Примечание, игра таким образом будет сильно отличаться, так как вывод сообщений тормозит игру!
После запуска мы видим, что появились сообщения в окне zSpy:
Разберем любую строку, чтобы понять, что она означает.
00:04 Warn: 0 C: SCRIPT: Npc_HasItems(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
00:00 время после включения утилиты
Warn - тип ошибки, в данном случае Warning
SCRIPT - тип ошибки игровой, в данном случае ошибка в скриптах
Npc_HasItems(): illegal param: "OTHER" is NULL - означает, что функция вернула аргумент OTHER как NULL (более простым языком, аргумент в функции не действителен, нет такого NPC или он ещё не инициализирован)
<oGameExternal.cpp,#252> - из какого исходного файла произошёл вызов этой ошибки
Теперь надо понять, что полезное можно извлечь из этих выводимых сообщений.
При запуске игры, но не загружая саму игру/сохранения - эти все Warning не несут никакого вреда, поэтому их просто можно исключить из своего внимания, при условии, что нет Fault/Criitical Errors.
Запускаем саму игру.
После запуска игры мы можем наблюдать следующую картину:
Как видно, к прошлым ошибкам добавились новые. Посмотрим на что стоит обратить внимание и сообщить разработчикам
00:12 Warn: 0 B: VP: File "ADDON_TITLE.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
00:12 Warn: 0 B: VP: File "ADDON_TITLE800X600.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
00:12 Warn: 0 B: VP: File "ADDON_TITLE640X480.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
Эти ошибки возникают, когда запускаемый видео файл игра не находит или видео было скипнуто, можно сообщить разрабам, если видео вы не скипаете сами.
00:12 Warn: 0 C: SCRIPT: Npc_IsDead(): illegal param: "KDW_140300_ADDON_MYXIR_CITY" is NULL. .... <oGameExternal.cpp,#252>
00:12 Warn: 0 C: SCRIPT: last parser func-name: INIT_NEWWORLD .... <oGameExternal.cpp,#262>
Это означает, что аргумент в функции Npc_IsDead недействителен, т.к. инстанции KDW_140300_ADDON_MYXIR_CITY не существует в игре, какой-либо ошибки в игре это не привносит, лишь будет генерироваться сообщения, сообщить разработчикам, на ваше усмотрение.
Как вы могли заметить, скриптовые ошибки идут парами, сначала сама ошибка, а потом из какой функции она была вызвана.
00:12 Warn: 0 C: SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: FIREPLACE .... <oGameExternal.cpp,#252>
00:12 Warn: 0 C: SCRIPT: last parser func-name: INIT_NEWWORLD .... <oGameExternal.cpp,#262>
Эта ошибка означает, что в игровом мире нет объектов с именем FIREPLACE, поэтому движок не может управлять этим объектом - желательно сообщить авторам об этом.
00:12 Warn: 0 D: zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
00:12 Warn: 0 D: zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
Такие рода ошибки означают, что не найдено перехода из анимации в анимацию, их будет генерироваться много, но только некоторые из них несут полезность, поэтому если видите Could not find nextAni можете пропустить.
Обсуждение этой темы было в 2015 году и сошлись на том, что это в порядке вещей.
00:20 Warn: 0 U: AI: Output-unit DIA_Addon_Xardas_Add_14_07 not found ! .... <oNpc.cpp,#13943>
00:20 Warn: 0 U: AI: Output-unit DIA_Addon_Xardas_Add_14_08 not found ! .... <oNpc.cpp,#13943>
Это означает, что движок не нашел звуковой файл и речь была немой - желательно сообщить авторам, если в модификации есть озвучка, если в модификации нет озвучки, тогда эти сообщения можно игнорировать.
Ну и на последок
00:09 Warn: 0 B: MOBCONTAINER: Item-Instance not found: ItFo_Mutton .... <oMobInter.cpp,#2983>
Этоо означает, что в игровом мире в каком-то сундуке в контейнере указан предмет, которого в моде нет - желательно сообщить авторам (чаще всего ошибка или путаница в названиях предметов)
На этом разбор этой утилиты закончен, но добавлю лишь некоторые упоминания.
С помощью утилиты zSpy удобно выводить текст при вылете ACCESS VIOLATION и передавать его.
Если у вас установлен Ninja, то запуск через GothicStarter_Mod.exe необязателен, т.к. Ninja делает прямое перенаправление сообщений.
Если вы собрали материал ошибок и у вас был включено логирование, то проще всего скинуть файл zSpyDefault.log из папки Gothic 2\System
Для отладки мода, можно с помощью скриптов отправлять сообщения в zSpy
PrintDebug
Если используете расширитель Ikarus+Lego для отладки можно использовать MEM_SendToSpy или MEM_Warn
Описание ошибок, которые мне известны:
Разработчики PB создали хорошую утилиту для отладки и поиска возможных ошибок, называется она zSpy, но почему-то мало кто о ней знает, или знают, но не разбирались, как работать с ней.
Скачать её можно отсюда, или взять из этой папки Gothic 2\_work\tools\zSpy
Версия из готики 2 работает под готикой 1.
Устанавливаем (распаковываем из архива) zSpy в \Gothic 2\System\
Запускаем zSpy.exe
Рассмотрим главное окно утилиты
1. Панель меню - содержит File, View, Options и Help
2. Панель кнопок - на которые вынесены основные функции утилиты
3. Рабочая область - на которой собственно и будут выводимые сообщения
1) Заглянем в меню - File
a) Save as... - позволяет сохранить наш журнал в отдельный документ
b) Print, Print Preview и Print Setup - позволяет напечатать наш журнал, сделать предпросмотр и настроить принтер
c) Copy view to clipboard - копирует текст из видимой рабочей области (копирует текст, на который мы смотрим, а он может быть в начале/середине/конце)
d) Copy last 100 clipboard - копирует последние 100 строк текста из рабочей области (копирует текст с конца)
2) Заглянем в View
a) Redraw - не работает
b) Clear Screen - очистить рабочую область
c) Autoscroll - при включении, рабочая область будет автоскролиться с новыми сообщениями ошибок/предупреждений
d) Always on top - при включении, утилита будет поверх всех окон
e) Toolbar - включает/отключает панель с продублированными кнопками
f) Status bar - не работает
3) Заглянем в Options
a) Logging - настройки по выводу различных ошибок
b) Font - настройки по шрифту
Здесь все понятно, выбираете любимый шрифт, размер, стилистику, для русского текста кодировку выбираем Кириллица
c) Colors - настройки по цветовой палитре различных ошибок
d) Find Text - позволяет искать нужный текст в рабочей области.
В открытом окне набираем искомый текст и при нажатии ОК, он будет найден и подсвечен синей линией
e) Find Next - перейти к следующему тексту (активна, при включении Find Text)
f) Remove Find-Result - очищает включенных поиск текста
g) Textfilter - позволяет задать точный вывод ошибок
В открытом окне набираем нужный искомый текст и при запуске игры, будут выводится ошибки только с ними
Примеры, SCRIPT, TEXTURE, SPAWN и прочее.
4) В меню Help будет кнопка About zSpy
При нажатии, можем посмотреть информацию об утилите, её версии и списка изменений.
На этом закончим внешний осмотр утилиты и углубимся в некоторые функции.
При нажатии на кнопку Logging (3.a) мы увидим следующее:
Раздел Categories - включает в себя категории выводимых ошибок
Informations - информация - это не ошибка, а различный текст о выполнении различных функции, которые происходят в игре (в основной части они нам не нужны, поэтому выключаем сразу), изначальный цвет в рабочей области черный
Faults - ошибка, она показывает какое-либо нарушение в функциях (часто при её выводе игра не вылетает, но исправить её обязательно)
Warnings - внимание - такого рода ошибки указывают на незначительные ошибки, игра с ними не вылетает, но исправление рассматривается разработчиком, в этой группе есть внимания, которые не влияют на игру и их можно не исправлять)
Critical Errors - критическая ошибка - эти ошибки всегда аварийно завершают игру и требуют немедленного исправления
Dynamic Show и Dynamic Hide - если включена Show - при включении игры zspy будет развернут и будет перекрывать окна, Hide - ничего этого не делает, если выключены оба, утилита будет вести себя как Hide
Remote UDP-Hosts - выключено (предполагалось, пересылка сообщений удаленно)
Disable UDP-communication - выключено
Log to file - при включении, можно задать файл, в который будет собираться вся выводимая информация (рекомендую включить её и оставить все по умолчанию)
Clear on start of application - при включении рабочая область будет всегда очищаться при запуске игры
Теперь же рассмотрим на деле, как это все работает.
Убедитесь, что вы установили PlayerKit на Готику 1 или Готику 2!
Чтобы сообщения стали пересылаться в zSpy необходимо запускать GothicStarter_Mod.exe, а не GothicStarter.exe
Если у вас установлен Ninja, то нужно запускать через GothicStarter.exe, запуск через GothicStarter_Mod.exe лишнее.
При запуске будет немного измененное окно:
Включаем оконный режим (чтобы видеть вывод сообщений), также перемешаем ползунок Сообщения zSpy с 0 до 4.
Так то вывод сообщений имеет градацию с 0 до 10, разница лишь в том, будет ли подробно сами сообщения выводится и разница заметна с включенным Information, если Information выключен, достаточно 4.
Все, теперь запускам выбранный вами мод.
Примечание, игра таким образом будет сильно отличаться, так как вывод сообщений тормозит игру!
После запуска мы видим, что появились сообщения в окне zSpy:
Разберем любую строку, чтобы понять, что она означает.
00:04 Warn: 0 C: SCRIPT: Npc_HasItems(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
00:00 время после включения утилиты
Warn - тип ошибки, в данном случае Warning
SCRIPT - тип ошибки игровой, в данном случае ошибка в скриптах
Npc_HasItems(): illegal param: "OTHER" is NULL - означает, что функция вернула аргумент OTHER как NULL (более простым языком, аргумент в функции не действителен, нет такого NPC или он ещё не инициализирован)
<oGameExternal.cpp,#252> - из какого исходного файла произошёл вызов этой ошибки
Теперь надо понять, что полезное можно извлечь из этих выводимых сообщений.
При запуске игры, но не загружая саму игру/сохранения - эти все Warning не несут никакого вреда, поэтому их просто можно исключить из своего внимания, при условии, что нет Fault/Criitical Errors.
Запускаем саму игру.
После запуска игры мы можем наблюдать следующую картину:
Как видно, к прошлым ошибкам добавились новые. Посмотрим на что стоит обратить внимание и сообщить разработчикам
00:12 Warn: 0 B: VP: File "ADDON_TITLE.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
00:12 Warn: 0 B: VP: File "ADDON_TITLE800X600.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
00:12 Warn: 0 B: VP: File "ADDON_TITLE640X480.BIK" does not exist. .... <zBinkPlayer.cpp,#74>
Эти ошибки возникают, когда запускаемый видео файл игра не находит или видео было скипнуто, можно сообщить разрабам, если видео вы не скипаете сами.
00:12 Warn: 0 C: SCRIPT: Npc_IsDead(): illegal param: "KDW_140300_ADDON_MYXIR_CITY" is NULL. .... <oGameExternal.cpp,#252>
00:12 Warn: 0 C: SCRIPT: last parser func-name: INIT_NEWWORLD .... <oGameExternal.cpp,#262>
Это означает, что аргумент в функции Npc_IsDead недействителен, т.к. инстанции KDW_140300_ADDON_MYXIR_CITY не существует в игре, какой-либо ошибки в игре это не привносит, лишь будет генерироваться сообщения, сообщить разработчикам, на ваше усмотрение.
Как вы могли заметить, скриптовые ошибки идут парами, сначала сама ошибка, а потом из какой функции она была вызвана.
00:12 Warn: 0 C: SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: FIREPLACE .... <oGameExternal.cpp,#252>
00:12 Warn: 0 C: SCRIPT: last parser func-name: INIT_NEWWORLD .... <oGameExternal.cpp,#262>
Эта ошибка означает, что в игровом мире нет объектов с именем FIREPLACE, поэтому движок не может управлять этим объектом - желательно сообщить авторам об этом.
00:12 Warn: 0 D: zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
00:12 Warn: 0 D: zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
Такие рода ошибки означают, что не найдено перехода из анимации в анимацию, их будет генерироваться много, но только некоторые из них несут полезность, поэтому если видите Could not find nextAni можете пропустить.
Обсуждение этой темы было в 2015 году и сошлись на том, что это в порядке вещей.
00:20 Warn: 0 U: AI: Output-unit DIA_Addon_Xardas_Add_14_07 not found ! .... <oNpc.cpp,#13943>
00:20 Warn: 0 U: AI: Output-unit DIA_Addon_Xardas_Add_14_08 not found ! .... <oNpc.cpp,#13943>
Это означает, что движок не нашел звуковой файл и речь была немой - желательно сообщить авторам, если в модификации есть озвучка, если в модификации нет озвучки, тогда эти сообщения можно игнорировать.
Ну и на последок
00:09 Warn: 0 B: MOBCONTAINER: Item-Instance not found: ItFo_Mutton .... <oMobInter.cpp,#2983>
Этоо означает, что в игровом мире в каком-то сундуке в контейнере указан предмет, которого в моде нет - желательно сообщить авторам (чаще всего ошибка или путаница в названиях предметов)
На этом разбор этой утилиты закончен, но добавлю лишь некоторые упоминания.
С помощью утилиты zSpy удобно выводить текст при вылете ACCESS VIOLATION и передавать его.
Если у вас установлен Ninja, то запуск через GothicStarter_Mod.exe необязателен, т.к. Ninja делает прямое перенаправление сообщений.
Если вы собрали материал ошибок и у вас был включено логирование, то проще всего скинуть файл zSpyDefault.log из папки Gothic 2\System
Для отладки мода, можно с помощью скриптов отправлять сообщения в zSpy
PrintDebug
Если используете расширитель Ikarus+Lego для отладки можно использовать MEM_SendToSpy или MEM_Warn
Описание ошибок, которые мне известны:
Класс oNpc
Класс zModel
Класс zError
Класс zSndMss
Класс oSpawn
Класс oGameExternal
Класс oGame
Класс oVisFx
Класс zTexture
Класс oMobInter
Класс zMesh
Класс zProgMeshProto
Класс oAiHuman
Класс zBinkPlayer
Класс oWaynet
Класс zRndD3D
Класс zCParser
Класс zParser_Symbol
Класс zCPolygon
Класс oInventory
Класс zObject
Класс oAniCtrl
Класс oSvm
Класс zVob
Класс zCsCamera
Класс zArchiverGeneric
Класс zMusic_DM
Класс zFILE_VDFS
Класс zBVolume
Класс oCMenu_Status
Класс oWorld
Класс zCCsContext
Ikarus/Lego
| Описание ошибки | Общие рекомендации исправления ошибки | |
Warn: 0 U: AI: Output-unit XXX not found ! .... <oNpc.cpp,#13943> | 00:20 Warn: 0 U: AI: Output-unit XXX not found ! .... <oNpc.cpp,#13943> | Добавить файл озвучки XXX в ресурсы мода. Если мод без озвучки, такие сообщения всегда будут генерироваться, поэтому их можно проигнорировать | |
Warn: 0 U: NPC XXX: EV_GOTOFP : Freepoint XXX not found. .... <oNpc_Move.cpp,#2187> | NPC/Monster XXX не может найти свободный Freepoint XXX | Запоминаем место, где вышла это сообщение и в Spacer добавляем отсутствующий FP_XXX | |
Warn: 0 U: ITEMI: No Transition found : MAPSEALED/0/1 .... <oNpc.cpp,#13663> | ошибка возникает, когда NPC/Monster использует предмет у которого есть scemeName - описание того, как нужно пользоваться предметом (Безвредное сообщение) | ||
Warn: 0 U: NPC: Could not send PERC AssessStopMagic to npc XXX. Current State is .... <oNpc.cpp,#15216> | движку не удается отправить восприятие NPC/monster XXX, возникает если жертва досрочно вышла из какого-то состояния | ||
Warn: 0 U: NPC: No Route found :XXX\XXX (XXX) .... <oNpc_Move.cpp,#1481> | NPC XXX не может добраться до своего целевого Waypoint XXX (Может отсутствовать в мире, или Waypoint не соединен) | Проверить наличие waypoint в zen файле., проверить связь этого waypoint с вашей сеткой. Количество несвязанных WP можно узнать в zen файле сохранённом в ANSI открываем файл и делаем поиск numWaypoints после = будет указан сколько WP у вас не соединено. Они пишутся как [waypoint0 zCWaypoint 0 12417], когда соединённые пишут вот так [wayl0 zCWaypoint 0 12420] Примечание, WP TOT не надо соединять с вашей сеткой! | |
Warn: 0 U: NPC XXX: EV_GOTOFP : Freepoint XXX not found. .... <oNpc_Move.cpp,#2187> | Движок не может найти свободный Freepoint XXX для NPC XXX | Проверить игровой мир, возможно рядом с WP либо нет FP, либо добавлено мало, чем используется в реальности Добавить недостающие FP | |
Warn: 0 U: NPC: EV_USEMOB : No Mobsi with specified schemeName (XXX) found. .... <oNpc.cpp,#13267> | NPC в выполнении своего распорядка дня не смог найти в поле зрения Mobinter объект | Проверить куда направлен waypoint в zen файле, если есть проблемы, развернуть их в направлении mobinter объекта, также waypoint может быть расположен очень близко - чуть отодвинуть его | |
Warn: 0 U: NPC: InteractItem XXX not saved. .... <oNpc.cpp,#9736> | используемый предмет XXX у NPC/monster не будет сохранен (безобидная ошибка) | ||
Warn: 0 U: NPC: Ani XXX not found. Cannot draw weapon ! .... <oNpc.cpp,#11104> | Не найдена анимация XXX, НПС/монстер не может выполнить действие | Проверить название анимации XXX в скриптах и в mds файле, возможно ошибка в названии анимации | |
Warn: 0 U: AI: No Output-unit number found: XXX.... <oNpc.cpp,#13916> | У NPC XXX отсутствует голос (voice) | Найти скрипт инстанции XXX и добавить его voice = | |
Warn: 0 U: NPC: EV_USEITEM : No targetVob XXX found. .... <oNpc.cpp,#13544> | используемый предмет был удален из рук, но событие использования все еще активно, например подметание, чтение скрижалей, то есть предмета в руках нет, а анимация еще воспроизводиться | ||
Warn: 0 C: oCNpc : EV_CreateInteractItem: DEF_CREATE_ITEM w/o previously called DEF_INSERT_ITEM, did you forget to set a valid mobsi useOnItem string ? .... <oNpc.cpp,#13359> | Как можно понять из сообщения, либо в анимациях перепутаны местами эвенты DEF_CREATE_ITEM и DEF_INSERT_ITEM, либо у Mobsi объекта отсутствует предмет для использования | Проверить анимации с этими эвентами и mobsi объекты, где генерируется эта ошибка |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D : zModel(zCModelAni::ResolveReferences): Could not find nextAni: XXX, this:XXX ... <zModelProto.cpp,#3352> | отсутствует переходная анимация XXX в блоке this:XXX | Если это новая анимация, то проверить, возможно нет перехода и добавить его |
Warn: 0 D : zModel.cpp(zCModel::StartAni): Ani not found: XXX.... <zModel.cpp,#2581> | анимация XXX не может быть воспроизведена | В наборе НПС/Монстра нет нужной анимации - исключить попытку вызова анимации для НПС/монстра. Также название анимации в скриптах должно быть прописано заглавными буквами |
Warn: 0 N : MSB: Frame-Number is out of bounds (AniEvents), ani: XXX.... <zModelProto.cpp,#4016> | ошибка в указании кадра в анимации XXX | Исправить номер кадра в анимации XXX, перекомпилировать новые анимации предварительно удалив старые и закомментировав anims...vdf |
Fault: 0 D : zModel(zCModelProto::LoadModelScript): MDS not found: XXX.MDS .... <zModelProto.cpp,#4930> | Движок не может найти и назначить xxx.mds. Обычно ошибка с назначением несуществующего overlay. Например в В1 таких ошибок возникает 4 штуки. | Найти ошибку в присвоении оверлея, возможно ошибка в назначении талантов для монстров, которым нельзя присвоить человеческие overlay Или указан неверный аргумент у функции Npc_SetTalentSkill, как пример из В1 Npc_SetTalentSkill(self,NPC_TALENT_1H,70) - неверно, должно быть Npc_SetTalentSkill(self,NPC_TALENT_1H,2) |
Fault: 0 D : (zCModel::DoAniEvents ): tried to give a handle to a oneShot PFX, pfx: XXX .... <zModel.cpp,#2965> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 U: OVOB: SearchNpcPos failed : Not enough space.XXX.... <zError.cpp,#474> | Для вставки NPC/Monster XXX мало места, поэтому он будет выкинуть в ближайшую местность | Проверить количество вставляемых НПС/Монстров в точку, если у монстров оно превышает 8, разбить на отдельные точки. |
Warn: 0 U: RTN: Routine change failed: XXX .... <zError.cpp,#474> | Движок не смог поменять расписание для NPC/Monster XXX, потому что он не прописан в скриптах | Проверить расписание у XXX и если его нет, добавить, либо удалить перевод в этой расписание |
Warn: 0 U: GUILDS: Guild-attitude-table size mismatch: Size has to be 66 .... <zError.cpp,#474> | Ошибка о несоответствии массива гильдии. Количество гильдии ограничено движком в 66. Таким образом произошло смещение в классе C_GilValues в движке - из-за этого 100% пострадают какие-либо гильдии, их поведение и прочее. | Вернуть массив гильдии. С расширителем ikarus+lego/Union/AST можно увеличить массив гильдии. |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: zSndMSS(zCSndSys_MSS::LoadSoundFXByIdentifier): Sound Identifier "XXX" unknown ! .... <zSndMss.cpp,#1155> | Движок не может найти инстанцию в sfx.dat. Также движок не может найти звуковой файл, если инстанция найдена. | Проверить инстанции в SFX.dat и в случае их отсутствия добавить. Проверить названия звуковых файлов и исправить, если допущены ошибки. |
Warn: 0 C: SND: PlaySound3D: SoundFile XXX.WAV has to be a mono file .... <zSndMss.cpp,#4057> | звуковой файл XXX имеет формат стерео, а может быть воспроизведет только в моно. Также ошибка может возникать, когда звуковой канал переполняется (пример, в мире рядом расставлено много Sound с их радиус действия большой) | Преобразовать звуковой файл в mono. Проверить радиусы zCVobSound и zCVobSoundDaytime. Если границы 6 звуков пересекаются, уменьшить радиус. |
Warn: 0 C: ARGLKABARGL: (zCActiveSnd: RequestChannel): no sample found .... <zSndMss.cpp,#3367> | Движок сообщает, что был переполнен звуковой канал | Уменьшить количество одновременных звуков в какой-либо локации |
Warn: 0 C: ARGLKABARGL2: (zCActiveSnd: RequestChannel): no sample found .... <zSndMss.cpp,#3367> | Движок сообщает, что был переполнен звуковой канал | Уменьшить количество одновременных звуков в какой-либо локации |
Warn: 0 C: ARGLKABARGL2: (zCActiveSnd: RequestChannel3D): no sample3d found .... <zSndMss.cpp,#3367> | Движок сообщает, что был переполнен звуковой канал (3D) | Уменьшить количество одновременных звуков в какой-либо локации (3D) |
Warn: 0 C: zSndMSS.h(zCWaveData: zCWaveData): Wave not found: XXX.WAV .... <zSndMss.cpp,#3947> | отсутствует звуковой файл XXX.wav Также может быть ошибка в названии звукового файла | Проверить названия звуковых файлов. Добавить отсутствующие звуковые файлы. |
Fatal:-1 C: zCWaveData::CacheIn(): could not decompress ADPCM file XXX.WAV .... <zSndMss.cpp,#3976> | Движок не может прочитать звуковой файл XXX | Возможно повреждение звукового файла, либо звуковой файл сделан с параметрами, которые не поддерживает движок, либо есть проблемы с аппаратным уровнем (Мог отвалиться в это время жесткий диск) |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 U: SPAWN: Spawnpoint XXX not found. Npc XXX cannot be spawned. .... <oSpawn.cpp,#450> | точка XXX для вставки предмета/НПС/Монстра XXX не найдена | Проверить название точки вставки XXX, оно должно быть прописано заглавными буквами, также проверить наличие точек в zen файле, и добавить по необходимости, в противном случае - удалить |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: XXX.... <oGameExternal.cpp,#252> | Движок не может найти объект с именем XXX, чтобы установить ему управление светом | Функция используется, чтобы управлять фонарями, поэтому проверяем vobname у фонарей, которые должны управляться движком, если таким объектов нет - удалить вызов функции |
Warn: 0 C: SCRIPT: Npc_IsDead(): illegal param: "XXX" is NULL. .... <oGameExternal.cpp,#252> | функция возвращает значение NULL, инстанция XXX не ициниализирована Также инстанция может быть ещё не добавлена в мир. | 1. Использовать класс C_NPC, а не инстанцию в функции 2. Добавить переменную, которая будет проверять смерть НПС и которая установится в функции ZS_DEAD и заменить ее |
Warn: 0 C: SCRIPT: Script tries to send trigger to XXX. Failure : vob not found. .... <oGameExternal.cpp,#252> | Движок не может найти в мире Trigger с именем XXX поэтому запуск через скрипт не возможен | Проверить в zen файле наличие XXX. Если имя указано с ошибкой - исправить. Если такого vob нет, добавить его, либо удалить вызов триггер из скриптов. |
Warn: 0 C: SCRIPT: Npc_KnowsInfo(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252> | Движок указывает на то, что глобальный класс other неправильный. | Как мы знаем из скриптов. Есть 5 глобальных классов: self, other, hero, item, victim. Так вот, использование глобального класса other вне диалогов чревато тем, что other может быть не ГЕРОЙ, поэтому функция может работать неправильно. Поэтому лучше заменить на глобальный класс hero, который всегда указывает на управляемого нами игрового персонажа. |
Warn: 0 C: SCRIPT: Npc_GetDistToWP(): Waypoint XXX not found. .... <oGameExternal.cpp,#252> | Движок не нашел waypoint XXX для NPC/monster XXX в текущем игровом мире | Находим в скриптах, где используется waypoint XXX и делаем проверку на уровень, если совпал - выполнять код, в противном случае нет. Также следует проверить наличие этого WP в zen файле, если его нет - добавить, либо исправить название, часто оказываются, что в конце имени есть лишний пробел. |
Warn: 0 C: SCRIPT: Npc_SendPassivePerc(): illegal param: "яINSTANCE_HELP" is NULL. .... <oGameExternal.cpp,#252> | у функции по отправке восприятия неправильный аргумент. яINSTANCE_HELP - особый указатель, который создается до создания функции движка (external), работает внутри движка. | ÿINSTANCE_HELP ('\0xFF' + ("INSTANCE_HELP" ) - вспомогательный символ парсера, который используется для хранения экземпляров Externals в качестве возвращаемого значения. В функциях он используется как 0. Следовательно Npc_SendPassivePerc(0,PERC_ASSESSWARN,other,self) или любые вариации недопустимы. Найти функцию, которая пытается послать восприятие 0. Также возможна взаимосвязь с другими функциями, которые пытаются передать 0, NULL. Возможно в какой-то момент была ссылка на класс C_ITEM с 0, ближайший пример Одиссея до версии 2.5, когда в инвентаре были пустые ячейки предмета. |
Warn: 0 C: SCRIPT: last parser func-name: XXX .... <oGameExternal.cpp,#262> | Используется для наглядности, чтобы показать, из какой функции произошел вывоз проблемной функции. (Без вредное) |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Fault: 0 U: NPC: Someone has an illegal Reference to an Npc ! AAArrrrggghhhh : .... <oGame.cpp,#2016> | Движок указывает, что есть ссылки на какого-то NPC, но NPC нет в мире. | Ошибка может возникать при загрузке сохранения или смене мира. Случается это когда какой-то объект ссылается на NPC, которого уже нет, чаще всего это эффекты. Тут нужно смотреть комплексно, рядом с кем возникает ошибка, когда. Изучить предметы НПС. Проверить функции Wld_PlayEffect |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: oCVisualFX::CreateAndPlay(): VisualFX ID XXX not found in visualfxinst.d .... <oVisFx.cpp,#1693> | движок не может найти инстанцию PFX-XXX в visualfxinst.d, поэтому эффект не воспроизводится | Добавить инстанцию pfx в visualfxinst.d, если это служебный PFX, его можно оставить пустым |
Warn: 0 C: oCVisualFX :: InitEffect(): vob not in world! .... <oVisFx.cpp,#2749> | означает, что у какого-то эффекта PFX нет родителя Vob, но эффект будет воспроизводится в этом месте, также ошибка возникает, когда предмет с pfx-эффектом был быстро перемещен из точки А в точку Б, а эффект остался на месте | Проверить pfx-эффект в мире, если у него нет родителя, привязать его ребенком в родительскому zCVob |
Warn: 0 C: VIS: (oCVisualFX :: CheckDeletion()): Visual died before spell was casted. Name: .... <oVisFx.cpp,#3352> | ошибка в создании pfx-эффекта, частицы эффекта удаляются до каста заклинания (бесконечная генерация, пока идет каст заклинания) | исправить время жизни pfx, возможно неверный флаг у руны/свитка |
Warn: 0 C: magic-pfx could not be started: XXX.... <oVisFx.cpp,#1118> | pfx-эффект XXX не может быть воспроизведен. | найти XXX pfx, проверить его, возможно нет связи с какой-либо инстанцией, или ошибка в названии инстанции. |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: Texture not found 'XXX.TGA', using default-texture .... <zTexture.cpp,#1377> | Движок не нашел текстуры XXX.tga, поэтому он использовал стандартную текстуру Default.tga | Добавить забытую текстуру .tga и скомпилировать ее |
Warn: 0 C: maximum texture size is lower than 32. possible reasons: wrong gfx driver setup (install other driver), bad os state (try to reboot), or insufficient gfx hardware (buy better gfx card!) <zTexture.cpp,#1377> | ||
Warn: X: CreateTextureTile: Unsupported DXTC format. XXX.tga <zTexture.cpp,#1377> | Движок не поддерживает сжатие текстур методом DXT |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 B: MOBCONTAINER: Item-Instance not found: XXX.... <oMobInter.cpp,#2983> | Движок обнаружил, что в контейнере сундука и прочее в списке содержится недопустимый объект и он не будет добавлен | Проверить контейнер и исправить название инстанции предмета (если он есть в скриптах) или удалить, также может быть ошибка в перечислении, лишняя , ; |
Warn: 0 U:MOBSI:No Slot ZS_SLOT found. <oMobInter.cpp,#2983> | Движок не обнаружил кость ZS_SLOT у Mob объекта |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: z3d(zCMesh::Load): Could not load Mesh: XXX.3DS .... <zMesh.cpp,#436> | модель XXX.3ds не найдена в ресурсах игры/мода | Добавить забытый meshes 3DS и скомпилировать его Также возможно, что указан неправильный visual у zCVob |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: zProgMeshProto ( : :Load ) : Could not load Mesh: XXX.3DS .... <zProgMeshProto.cpp,#602> | модель XXX.3ds не найдена в ресурсах игры/мода | Добавить забытый meshes 3DS и скомпилировать его Также возможно, что указан неправильный visual у zCVob |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: corrected ani freezer for npc: XXX, pos: X: .... <oAiHuman.cpp,#2805> | движок исправил положение NPC/монстра XXX на поверхности | Без вредное |
Warn: 0 C: corrected ani freezer for player! pos: X: .... <oAiHuman.cpp,#2805> | движок исправил положение Игрока на поверхности | Без вредное |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 B: VP: File "XXX.BIK" does not exist. .... <zBinkPlayer.cpp,#74> | Движок не нашел видео XXX.bik Также ошибка может возникать, когда скипаем видео до его появления | не пропускать видео, добавить видео в ресурсы мода, либо убрать его запуск из скриптов |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 U: WAY: Ladder highpoint error (XXX/XXX).... <oWaynet.cpp,#236> | Движок обнаружил, что BBOX лестницы пересекается с сеткой WP | В Spacer находим waypoint XXX и смотрим, чтобы BBOX WP не пересекали BBOX лестницы, также линия WP должна пересекать только 1. Точнее двигаем WP, удаляем лишние пересечения и прочее. |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 X: [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#124> | Движок обнаружил проблемы с устройствами отрисовки графики - Видеоадаптер, драйвера, Direct X | Возможно повреждение драйверов, кривые драйвера, повреждении библиотек Direct X, аппаратная проблема с видеокартой. Возможно очень долго не перезапускали ОС (например ноутбук) |
Warn: 0 X: zCSurfaceCache_D3D :: CacheOutSurface: slotindex->height out of range ! .... <zRndD3D_SurfaceCache.cpp,#188> | движок сообщает, что какая-то текстура превысила максимальный размер в 2048 пикселей по высоте | Переделать текстуру, уменьшив разрешение по высоте |
Warn: 0 X: zCSurfaceCache_D3D :: CacheInSurface: slotindex->width out of range ! .... <zRndD3D_SurfaceCache.cpp,#116> | движок сообщает, что какая-то текстура превысила максимальный размер в 2048 пикселей по ширине | Переделать текстуру, уменьшив разрешение по ширине |
Fault: 0 X: XD3D_AlphaBlendPoly: xd3d_numAlphaPolys>=MAXALPHAPOLYS (Too many alphapolys) .... <zRndD3D_Render.cpp,#914> | Движок обнаружил что в кадре находится слишком много объектов с мультиканалами | Движок обнаружил что в кадре находится слишком много объектов с мультиканалами |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки | |
Fault: 0 U PAR: Unexpected End of File. (line XXX) | Движок обнаружил при компиляции скриптов ошибку окончании файла. | Посмотреть недавно измененные скрипты, возможно где-то забыли исправить комментарий, или указали разрыв строки неправильно, или сам коней файла указан неправильно (например Unix, вместо Windows CR LF) Также возможно, что вы прописывали в скрипте два раза одно и тоже действие. Еще играет важную роль формат файла - готика правильно работает только с ANSI | |
| Движок обнаружил, что используемая константа не определена | Парсер считает сверху вниз код, поэтому он не может динамически подхватывать новые переменные. Они должны быть строго определены заранее. Пример, неправильно: var int ZAEHLER_TALENT_1H; oth.aivar[ZAEHLER_TALENT_1H] = oth.aivar[ZAEHLER_TALENT_1H] + percent; У айваров используются константы, поэтому должны быть так const int ZAEHLER_TALENT_1H = 89; oth.aivar[ZAEHLER_TALENT_1H] = oth.aivar[ZAEHLER_TALENT_1H] + percent; | |
U PAR: Expected an Integer-Value : XXX (line XXX) | |||
U PAR: Assignment: Left operand is not a lvalue (line xxx) | Движок обнаружил, что происходит попытка присвоения в блоке if else | Исправить присвоение на сравнение в условии if | |
U PAR: Syntax Error. First letter is a digit. Instancename XXX | Движок обнаружил, что в имени инстанции первая буква - цифра | Исправить название инстанции | |
U PAR: Syntax Error. First letter is a digit in prototypename XXX | Движок обнаружил, что в имени прототипа первая буква - цифра | Исправить название прототипа | |
U RAP: Expected 'X' (line XX) | Движок при компиляции обнаружил не закрытую функцию, забытую скобки | В недавнем скрипте найти место и исправить - добавить ; ) } Также ещё стоить посмотреть на тип функции, возможно в func void XXX стоят return XXX, тогда исправить функцию на func int XXX |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 U: PAR: External XXX not found. .... <zParser_Symbol.cpp,#1123> | Движок обнаружил, что в скриптах используется функция, которая не определена в External. | Ошибок нет. В настоящее время новые функции могут быть добавлены с помощью Union/AST/Ikarus+Lego, поэтому их нет в оригинальном External. Если там функции GAME_INITGERMAN/GAME_INITENGLISH/GAME_INITENGINTL - то они создавались под разные языковые словари, различаются лишь использованием адресов движка с 0x6FB9A0 до 0x6FB9F3, но функции всегда возвращают 1. Для модов всегда используем в startup_global() GAME_INITGERMAN |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: (zCPolygon::CalcNormal): Degenerate Polygon, center at: (X, X, X) .... <zPolygon.cpp,#574> | Движок обнаружил в zen файл кривой полигон | Через любой 3d редактор находим этот полигон в вашем мире по координатам и проверяем его (возможно вершины полигона не соединены), возможно сложная форма у полигона |
Warn: 0 D: (zCPolygon::ClipToFrustum) too many clipped Polys in Scene .... <zPolygon.cpp,#578> | ||
Warn: 0 D: zCPolygon::ClipToPlane: Too many clipped verts in scene .... <zPolygon.cpp,#578> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 M: Invalid item (no name, no instance) put into inventory. Deleting it. .... <oInventory.cpp,#2967> | в игровом мире (zen файл) есть предметы oCItem, которые потеряли связь со скриптами и при подборе они удаляются у игрока (Возникает такая ситуация, когда редактируется zen файл с оригинальными скриптами и сохраняется с ними) Также ошибка возникает, когда в анимации используется предмет, которого нет в скриптах. | Потерянные oCItem предметы помещаются в папку oCItem, нормальные предметы обычно находятся в папке oCItem (zCProgMeshProto) или oCItem (zCMorph). Передобавляем все потерянные предметы, если в скриптах предмета нет - удалить. Проверить анимации, узнать название предмета и добавить его в скрипты, либо исправить название инстанции предмета. |
Warn: 0 Removing item with refcount <=1 from inventory will cause it to be deleted... <oInventory.cpp,#2967> | ||
Warn: 0 oCNpcInventory::HandleTrade() has been called although it is obsolete! <oInventory.cpp,#2967> | ||
Warn: 0 N: PackItemsInCategory: invalid item count - npc: XXX, item: XXX, amount: XXX <oInventory.cpp,#2967> | При сохранении игрового процесса произошел сбой, из-за чего у NPC XXX сохранился предмет XXX с количеством 0 | Данная ошибка говорит нам о том, что в сохранении у NPC XXX в инвентаре находится предмет с количеством 0. Нужно посмотреть инстанцию этого NPC, возможно создается предмет с количеством 0. Возможна ситуация в плохой функции B_CreateAmbientInv. Возможно создание нулевого предмета есть в диалоге, нужно смотреть комплексно. Можно исправить сохранение, достаточно изменить 0 на 1 открыв сохранение мира, в котором находится этот NPC. |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: OBJ: SetObjectName() on shared object class 'zCTexture' failed: object with that name already exists! XXX.TGA .... <zObject.cpp,#299> | ||
Warn: 0 D: OBJ: SetObjectName() on shared object class 'zCMaterial' failed: object with that name already exists! XXX .... <zObject.cpp,#299> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: draw weapon ani XXX not found! .... <oAniCtrl.cpp,#3842> | Отсутствует анимация XXX чтобы НПС/монстр перешел в режим боя | Найти ошибку в названии анимации в скриптах, mds файле, либо сделать исключение, чтобы НПС/монстр не переходил в режим боя |
Warn: 0 U: ANI: No Stand-Ani for current Weaponmode found. .... <oAniCtrl.cpp,#785> | NPC/Monster не может принять стойку боевого режима | Скорее всего ошибка вызвата тем, что для монстра не указана функция атаки Npc_SetToFistMode Нужно проверить всех неписей и присвоить любой вид атаки. |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 U: SVM: Output-Unit "XXX" not found (XXX) .... <oSvm.cpp,#94> | отсутствует в скриптах переменная и текстовая строка SVM диалога XXX | Добавить в SVM.d недостающие svm-диалоги |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Fault: 0 D: (zCVob::SetVisual): could not load visual 'XXX.3DS' for vobName 'XXX' of class 'XXX' .... <zVob.cpp,#2004> | движок не может поставить visual XXX.3ds у объекта XXX с именем XXX | Через Spacer находим по имени XXX объект XXX и исправляем название visual |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: (zCCSCamera :: EV_Play): autoCamPlayerMovable and autoCamUntriggerOnLastKey are both FALSE => player can't untrigger camera .... <zCsCamera.cpp,#1609> | Движок обнаружил, что у камеры не настроены параметры autoCamPlayerMovable и autoCamUntriggerOnLastKey | Посмотреть настройки всех камер и исправить их параметры autoCamPlayerMovable и autoCamUntriggerOnLastKey. Первый отвечает за возможность ходить, пока камера показывает сцену. Второй отвечает за возвращение управления игроком после прекращения показа камеоы |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 D: zArchiver ( : : ReadObject ) : found an objectPtr in file, tried to write this to an 'objectUseThis' .... <zArchiverGeneric.cpp,#1176> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 5 C: zMusic_DM.cpp(zCMusicSys_DirectMusic: : PlayJingle): No such motif: XXX |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 B: VFILE: Seek -1125318516 on file XXX failed. Current position is XXX. Filesize is XXX .... <zDisk_Vdfs.cpp,#255> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 C: zCOBBox3D : : LoadBIN(): really many child bboxes found. probable data corruption. try to delete all _compiled data instead converting on the fly! .... <zBVolume.cpp,#2376> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Fault: 0 B: STAT: Menuitem XXX not found .... <oMenu_Status.cpp,#418> |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Fault: 0 U: OBJ: Script-object XXX not found ! Please correct instancename ! .... <oWorld.cpp,#309> | Движок сообщает, что указанная инстанция ХХХ отсутствует | Проверить анимации, возможно там используется инстанция предмета, которого нет в скриптах, или присутствуют ошибки в названиях |
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 B: CS : Cutscene XXX has no player .... <zCCsContext.cpp,#447> | ||
Warn: 0 B: CS: onStop-ScriptFunction not found: XXX .... <zCCsContext.cpp,#447> | ||
Название ошибки | Описание ошибки | Общие рекомендации исправления ошибки |
Warn: 0 Q: MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want. Fault: 0 Q: [start of stacktrace] xxxxx Fault: 0 Q: [end of stacktrace] | такая конструкция вывода ошибок идет от пакета ikarus, в блоке между start of stacktrace и end of stacktrace описываются функции, в которых произошел вылет. До этого блока пишется функция, которую нужно рассмотреть в функциях в блоке | В примере, требуется заменить MEM_PtrToInst на MEM_NullToInst в функциях, которые указаны в блоке start of stacktrace и end of stacktrace |
Последнее редактирование: