RedHeavenHeroGetPlayerState(i) == 1 or 0
Если функция вернула единицу (игрок жив), то "==" вернет 1 и эта 1 будет прибавлена к n, иначе вернет nil. Но nil прибавлять нельзя и операция "или" заменяет его на 0.
Понял, значит это издержки конструкции
n = n + (isCondition or 0)
Поэтому советую вместо нее использовать более адекватную с точки зрения читабельности (вместо попыток складывать числа с логикой):
if (isCondition) then
n = n + 1
end
И вопросов никаких вызывать не будет.