почему невозможно? Если при старте он один, то легко.
Heroesplayer1 = GetPlayerHeroes (1); -- дает переменной количество существующих героев
hero1 = Heroesplayer1 [0]; -- дает первой переменной в списке имя
--так можно продолжать до бесконечности (пока не кончится переменная)
и имя стартового (и первого) Героя игрока 1 = отныне hero1