OrnsteinDragonslayer, код настолько неверен, что даже непонятно с какой стороны объяснить. Начать надо с того, что игра в ошибке прямо указывает в какой функции она произошла и какая переменная ей не понравилась. В приведённом коде их нет, это значит что ошибка произошла в другой части боевого скрипта. По остальному рекомендую посмотреть мануал Новика, особенно про боевые хуки.
Gerter, боевой скрипт знает всё что есть в common.lua. Если там нет соответствующего макроса, можно ещё посмотреть в types.xml, и если там есть то что нужно, вставить в скрипт как число. К примеру в common.lua заклинания заканчиваются на
SPELL_BLADE_BARRIER = 284;
а в types.xml после него есть ещё
SPELL_UBER_METEOR_SHOWER 285 и много других далеко за 300.
В частности ABILITY_DEATH_WAIL это 316.