Не-не-не!!! Сори!
Я этой функцией вывода вспомогательного сообщения, только ввел вас в заблуждение.
Все! Забыли про Sss("Удалили красную зену: " + actorName); Дело вовсе не в этом. Ошибка есть так или иначе. Вот код без этой функции и ошибка все равно возникает:
Код:
public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);
if (actor is AiGroundActor)
{
(actor as AiGroundActor).Destroy();
}
}
Проверил только что еще раз. Ошибка есть. И нет ошибки, если проделать все тоже самое, но с секундной задержкой.
Но подчеркиваю: И в том и в этом случае, зенитка все равно нормально удаляется.
Ошибка возникает такая:
Код:
=================================================
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в C73nDcVHkfNlG1HRmmb.RW57KCVWohHyXJ5krUt.ydxsYS7apyu(d19kQTbEvXhjHykyf8d , dICXoRXk7y7vkkUvR4v , Int16 , Boolean )
в 12oB5s7LiQTBW7EtP2V.n61Vjl7SllEshhqKbYQ.kHlBq45JnvX(oXNPnT8Hh3UKJa6ZZy , SUsxEiF3QjXTYkAujT1 , B75N63VkDk3IVOC1G3Q , GPYJGEs07NMqUYFIJRN , Double& )
в C73nDcVHkfNlG1HRmmb.RW57KCVWohHyXJ5krUt.msgShot(SUsxEiF3QjXTYkAujT1 )
в H9k668FBsuD6ndx8Z0w.SUsxEiF3QjXTYkAujT1.P0colRfLS3u(SUsxEiF3QjXTYkAujT1 )
в H9k668FBsuD6ndx8Z0w.SUsxEiF3QjXTYkAujT1.X7cYOeKBYyql3jthiEO0(Object )
в H9k668FBsuD6ndx8Z0w.SUsxEiF3QjXTYkAujT1.Tm6oln8qMcy(d19kQTbEvXhjHykyf8d , Tujx1nWZkdCL5iBIZk , String , Point3d& , Vector3d& , Double , Double , b5X4V3c4exFtE9L5FjX , Double , bV5YXhceO4t4hjKDLyi )
в iTQ2F3BmBVt9SCk6mLU.ZwK9QMBBEsmk1BR0vEh.cujSBu15Yef(Tujx1nWZkdCL5iBIZk , String )
в ni37tVPHruIq9NlxXSS.U44P7gPWjvHAMLK3Rv5.pkis5BedngrRoylBJHRX(Object , Object , Object )
в ni37tVPHruIq9NlxXSS.U44P7gPWjvHAMLK3Rv5.QkEsNixkSaq(Object )
в PDEYCdwa2J4QMrF1lcD.d4vV2vwCQi0a584sPXx.JBeVQdP174(Object )
=================================================
Еще один вопрос Зенитка принадлежит к "AiGroundActor". А к чему принадлежит аэростат-лебедка этого типа: "Aeroanchored.Balloon_winch_GER1"? (это название из файла-миссии)
Я это к тому спрашиваю, что тоже, как и зенитку, хотел бы его удалять по факту попадания в него. Как это сделать? Ведь такой код для аэростата тут уже явно не сработает:
if (actor is AiGroundActor)
{
(actor as AiGroundActor).Destroy();
}