To AKIMA
Для типа TNPC полями являются другие типы. А ты их не создаешь и сразу присваивешь какие-то значения. Попытка обращения к несуществуещему объекту, естественно, дает ошибку.
Инициализующая функция должна быть такой:
Function NewNPC.Tnpc(nName,hHead,hTors#,hBelly#,hLegs#,uMagic1,uStr,uWeap)
*n.tNPC = New tNPC
* *n\health.TBody * = New TBody
* *n\udar.TUdar * * = New TUdar
* * *n\health\Head *= hHead
* * *n\health\Belly = hbelly#
* * *n\health\Legs *= hlegs#
* * *n\health\Tors *= htors#
*Return n
End Function
Теперь все будет работать. Но я бы реализовал это по другому, без связанных типов, через массив:
Const HEAD * *= 1
Const LEGS * *= 2
Const BELLY * = 3
Const TORSO * = 4
Type TNPC
* *Field health# [4]
* *Field name
End Type
n.TNPC = New TNPC
n \ health [ HEAD ] = 25