Я запускал сервер из игры со своей простенькой миссией и Вашим скриптом.
Я запускал сервер из игры со своей простенькой миссией и Вашим скриптом.
Да, на Repke, не работает. И пишет в консоль кучу NullReferenceException. Думаю этот null из скрипта лезет.
Подозреваю, что причиной нуль эксепшенов могут быть вызовы по таймауту без проверки на нуль. Например
Что будет, если за 10 минут aircraft уже разбился?Код:Timeout(600.0, () => { (actor as AiAircraft).Destroy(); });
А потом все пошло нога в ногу...
Крайний раз редактировалось oreva; 28.04.2011 в 16:39.
А как это исправить? Я не программист к сожалению... Будем благодарны за любую помощь.
Проверил новую версию карт у себя, все работает, самолеты падают, на полосе дестроятся при выходе. Скрипт не менял. Выложил в картах.
Спауны возвращены в ангары. В связи с зависанием редактора при размешении нового объекта "аэродром" дальнейшие исследования исправления спаунов прекращены до хотфикса редактора.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Так?
Код:if ((PlaneIsEmpty) && (actor as AiAircraft).IsAirborne()) { (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled); (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng0TotalFailure); //for 2mots (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng1TotalFailure); //then wait 10min Timeout(600.0, () => { if (actor is AiAircraft) { (actor as AiAircraft).Destroy(); } }); } else if (PlaneIsEmpty) { (actor as AiAircraft).Destroy(); }
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Small_bee ответили до меня ...