Скрипт выглядит красиво, странно, что не работает. В консоль не заглядывали? И это... Сомневаюсь, что поможет, но я бы попробовал в конце StartCombat'a написать три nil'а ещё. Там просто есть такая штука, что по дефолту стоит значение переменной, которая идёт первой в функции, как бы из-за этого не было глюка, что обязательная переменная не выставлена, а дефолтная выставлена таким образом...