Assertion failed при компиляции пакета

hoobeedoo

Единомышленник
Участник
Сообщения
20
Розыгрыши
0
Репутация
0
Реакции
1
Баллы
175
Доброго времени суток, судари и сударыни.
Компилю пакет с эффектами, вот такая проблема:

Код:
C:\UnrealEngine2Runtime\System>ucc make NoBind
--------------------Core - Release--------------------
--------------------Engine - Release--------------------
--------------------Fire - Release--------------------
--------------------Editor - Release--------------------
--------------------UnrealEd - Release--------------------
--------------------IpDrv - Release--------------------
--------------------UWeb - Release--------------------
--------------------GamePlay - Release--------------------
--------------------GUI - Release--------------------
--------------------Runtime - Release--------------------
--------------------RTInterface - Release--------------------
--------------------ImJustPackage - Release--------------------
Analyzing...
Parsing my_custom_class_ta
Compiling my_custom_class_ta
Importing Defaults for my_custom_class_ta
ImJustPackage.my_custom_class_ta: Unknown property in defaults:      bSunAffect=true
Success - 0 error(s), 1 warning(s)
Assertion failed: Index<=ArrayNum [File:c:\demiurge\runtime\runtimefiles\core\inc\UnTemplate.h] [Line: 750]

History: FArray::Realloc <- 0*40 <- DeleteObject <- (15311) <- DeleteGarbage <- (SimpleEmitterName1) <- UObject::PurgeGarbage <- UObject::StaticExit <- appPreExit

Exiting due to error

причем, по факту на выходе успешно получается *.u-файл, и нужный эффект предоставляет всё необходимое, клиент не критует, тем не менее хотелось бы разобраться в природе асёрта (на warn пофиг).

C-подобный:
Код *.uc скрипта:
class my_custom_class_ta extends Emitter;

defaultproperties{

    Begin Object Class=SpriteEmitter Name=SimpleEmitterName1

        ...any properties...

    End Object

    Begin Object Class=SpriteEmitter Name=SimpleEmitterName2

        ...any properties...

    End Object

    Emitters(0)="SimpleEmitterName2"

    Emitters(1)="SimpleEmitterName2"

}

PS. если скомпилировать без добавления классов, то проблем нет.
 
Вы не используете SimpleEmitterName1 в своем скриппте (оба эммитера SimpleEmitterName2).
Так как ссылки на SimpleEmitterName1 нет в скрипте сборщик мусора выкидывает assert.
 
Вы не используете SimpleEmitterName1 в своем скриппте (оба эммитера SimpleEmitterName2).
Так как ссылки на SimpleEmitterName1 нет в скрипте сборщик мусора выкидывает assert.
пардон, это я просто свой код "маскировал", там нормально всё. должно быть так:

Emitters(0)="SimpleEmitterName1"
Emitters(1)="SimpleEmitterName2"
 
Значит что-то внутри самого SprireEmiiterName1 не так.
 
Значит что-то внутри самого SprireEmiiterName1 не так.
даже если в нем нету пропертей, просто пустой, такая же ошибка

важно, если есть пустые эмиттеры. если их нет, всё чисто
 
Тогда без понятия, но ошибка происходит уже на этапе закрытия UCC когда он собирает мусор и к процессу компиляции отношения не имеет.
 
ну это понятно что GC ломает, ладно как разберусь отпишусь решение. спасибо.
 
Назад
Сверху