LetoX, возможные ошибки:
1. Функция start() кажется должна идти с большой буквы - Start(). Lua чувствителен к регистру.
2. Мана возможно не сразу будет дана герою, дождаться наверняка можно с помощью такой конструкции:
SetUnitManaPoints(GetAttackerHero(), 100);
repeat sleep() until(GetUnitManaPoints(GetAttackerHero()) == 100);
3. Функции каста заклинаний в некоторых случаях могут зафэйлить и скрипт вывалится в этом месте. Есть более безопасный вариант их запускать через отдельный поток:
startThread(UnitCastGlobalSpell, GetAttackerHero(), 212);
И ещё после функций каста и перед восстановлением прежней маны лучше поставить sleep(1), чтобы мана за каст успела отняться до её восстановления.