landw1rt, данная версия оператора for предназначена для обхода таблиц, а у вас функция возвращает строку. Воспользуйтесь просто GetPlayerHeroes():
local hero_cnt = 0;
for i = PLAYER_1, PLAYER_8 do
hero_cnt = hero_cnt + length(GetPlayerHeroes(i));
end
Код не проверял, мог ошибиться.