Кстати, умная мысль. Можно и GetPlayerFilter(GerObjectOwner(hero)). Думаю, это даже будет лучше
Дело в том, что фильтр игрока не совпадает с номером игрока:
1—1
2—2
3—4
4—8
...
Почему я против проверки GetCurrentPlayer, потому что герои могут ходить не только на своём ходу