Одна из ключевых возможностей EyeAuras — это движок C#-скриптов, который позволяет компилировать, загружать и выполнять ваш код в реальном времени. Он используется в действиях, триггерах и деревьях поведения.
Поскольку в коде для скриптов практически нет ограничений, ошибки встречаются довольно часто: они могут приводить к крашам, дедлокам и другим типичным проблемам программирования. Я уже писал об этом в чейнджлоге 7060.
В этой версии я добавил дополнительный механизм, который будет автоматически расширять и переписывать ваш код, чтобы уменьшить влияние некоторых распространённых ошибок. Например:
TaskThread.Sleep вместо метода Sleep, встроенного в EyeAuras, который намного точнее и поддерживает отменуwhile(true){} вместо while(!cancellationToken.IsCancellationRequested){}Теперь такие случаи, как и многие другие, будут анализироваться ещё до компиляции, а код — автоматически переписываться. Конечно, таким способом можно исправить только часть ошибок. Основная ответственность по-прежнему остаётся на вас как на авторе скрипта: именно вы должны писать рабочий код. Но этот механизм должен немного упростить жизнь.
Посмотрим, как это покажет себя на практике и насколько полезным окажется. В идеале вы вообще не должны замечать, что он работает.
Если заметите что-то странное — обязательно сообщите!